Как вывести цифры числа в java?
Нужна помощь... Задача следующая: Нужно ввести любое число, например 123 и нужно вывести на экран 1, 2, 3 через цикл while Пишу программу - выводит 3 2 1. но не 1 2 3....
Весь день ломаю голову непонимаю... Помгите....
import java.util.Scanner;
public class ExersiseChapter15 {
public static Scanner reader = new Scanner (System.in);
public static void main(String[] args) {
System.out.print("Введите число: ");
int a = reader.nextInt();
int b = 0;
while (a > 0) {
b = a % 10;
System.out.print(b + " ");
a /= 10;
}
}
}
Ответы (3 шт):
Автор решения: Igor
→ Ссылка
ArrayList<Integer> digits = new ArrayList<>();
while (a > 0) {
b = a % 10;
digits.add(b);
a /= 10;
}
for (int i = digits.size() - 1; i >= 0; i--) {
System.out.print(digits.get(i).toString() + " ");
}
Автор решения: Aziz Umarov
→ Ссылка
Вот так попробуйте
import java.util.Scanner;
public class ExersiseChapter15 {
public static Scanner reader = new Scanner (System.in);
public static void main(String[] args) {
System.out.print("Введите число: ");
int a = reader.nextInt();
int b = 0;
String result ="";
while (a > 0) {
b = a % 10;
result = b.toString() + result !="" ? ", "+result: result;
a /= 10;
}
System.out.print(result);
}
}
Автор решения: pazukdev
→ Ссылка
Если обязательно надо использовать цикл while:
String[] array;
try (Scanner sc = new Scanner(System.in)) {
array = String.valueOf(sc.nextInt()).split("");
}
int i = 0;
while (i < array.length) {
System.out.print(array[i++] + ",");
}
Если while не обязателен, то можно inline:
try (Scanner sc = new Scanner(System.in)) {
Arrays.asList(String.valueOf(sc.nextInt()).split("")).forEach(e -> System.out.print(e + ", "));
}
Как убрать последнюю запятую и пробел - придумайте сами. К принципиальному решению задачи это не относится.