Здравей, друг начин да принтираш ваче готовия ArrayList с нулите накрая е да го превърнеш в String array, ето тук е обяснено как: https://beginnersbook.com/2013/12/how-to-convert-arraylist-to-string-array-in-java/
Това е моето решение на тази задача, малко е тромаво но минава в Системата:
import java.util.Scanner;
import java.util.ArrayList;
public class ArraySort2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String num = sc.nextLine();
String[] numbers = num.split(",");
int[] numbers2 = new int[numbers.length];
ArrayList<Integer> zero = new ArrayList<>();
ArrayList<Integer> nonzero = new ArrayList<>();
for (int i= 0; i < numbers.length; i++) {
numbers2[i] = Integer.parseInt(numbers[i]);
}
for (int x: numbers2) {
if (x==0) {
zero.add(x);
} else{
nonzero.add(x);
}
}
nonzero.addAll(zero);
String array[] = new String[nonzero.size()];
for(int i = 0 ; i < nonzero.size(); i++) {
array[i] = String.valueOf(nonzero.get(i));
if (i > 0) {
System.out.print(",");
}
System.out.print(array[i]);
}
}
}