Как вывести цифры числа в 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 + ", "));
}

Как убрать последнюю запятую и пробел - придумайте сами. К принципиальному решению задачи это не относится.

→ Ссылка