Odczytanie liczb

0

Witam. Napisał coś takiego :

package newpackage;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Test {

    public static void main(String[] args) {

        try {

            Scanner sc = new Scanner(System.in);

            System.out.println("Podaj liczby: ");
            int liczby = sc.nextInt();

            PrintWriter pw = new PrintWriter(new File("liczby.txt"));
            
            pw.println(liczby);
            pw.flush();

        } catch (FileNotFoundException blad1) {
            System.out.println("Brak");
    }

}


Chciałem aby liczby pokazywały się w nowym wersie a na ostatnim wersie ich suma, mam problem z wypisaniem tych liczb, sądzę że powinien być tu jakiś for, ale nie mogę sobie z tym poradzić. Z góry dzięki.

P.S. Jeśli wpiszę liczbę 753 to chciałbym żeby w pliku było coś takiego:
7
5
3
15

1

Wczytuj stringa ze scannera, potem w pętli przejdź po znakach z tego stringa, rzutując poszczególne chary na liczby, wypisując je na wyjście i dodając ich wartości do sumy, którą wypiszesz na końcu

0
for (int i = 0; i < liczby.length(); i++) {
                pw.println(liczby.charAt(i));
            }

Napisałem na razie tylko tyle, nie wiem co zrobić aby na końcu wyświetliło końcowy wynik.

0

Kolejny raz zakładasz temat, w którym tylko coś printujesz. Bawisz się pętlami a nie umiesz wprowadzić zmiennych? Dodaj sobie zmienną ( z początkową wartością 0), do której będziesz dodawać liczby w powyższym forze.

Wydaje mi się, że problem jest w Tobie. Nie chodzi o to, że nie znasz składni języka (na poziomie podstawowym), Ty po prostu nie umiesz sobie wyobrazić w głowie rozwiązania. Nie umiesz rozbić problemu, na kilka mniejszych problemów. Czytasz zadanie i patrzysz na to jak na całość, zamiast przemyśleć sobie w głowie jakie kroki powinieneś uczynić.

0

jw. przede wszystkim musisz nauczyć się formułować odpowiednie pytania, najlepiej po angielsku, to w przypadku tak małych i prostych problemów znajdziesz dziesiątki rozwiązań jak uzyskać wynik.
Jeden ze sposobów zaproponowany wyżej to zrzutowanie tego na tablicę "char" i wypisanie elementów w pętli do pliku. Bez wielkich zmian w twoim kodzie:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class FilePrint {
    public static void main(String[] args) {

        try {

            Scanner sc = new Scanner(System.in);

            System.out.println("Podaj liczby: ");
            int liczby = sc.nextInt();
            char[] liczbyLista = Integer.toString(liczby).toCharArray();

            PrintWriter pw = new PrintWriter(new File("liczby.txt"));

            for (char c : liczbyLista) {
                pw.println(Character.getNumericValue(c));
            }

            pw.flush();

        } catch (FileNotFoundException blad1) {
            System.out.println("Brak");
        }
    }
}
0

Java to nie moja broszka, ale to co widzę wyżej nie wygląda najlepiej

package newpackage;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
        try (PrintWriter pw = new PrintWriter(new File("liczby.txt"))) {
            System.out.println("Podaj liczby: ");
            int suma = 0;

            while (sc.hasNextInt()) {
                 int liczba = sc.nextInt();
                 suma += liczba;
                 pw.println(liczba);
            }
            pw.println(suma);
        } catch (FileNotFoundException blad1) {
            System.out.println("Brak");
        }
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1