Вы хотите установить разделитель следующим образом:
Scanner sc = new Scanner(System.in);
sc.useDelimiter(System.getProperty("line.separator"));
while (sc.hasNextInt()){
int i = sc.nextInt();
//... do stuff with i ...
}
UPDATE:
Код выше работает хорошо, если пользователь вводит число, а затем нажимает ввод. При нажатии клавиши ввода без ввода номера программа прерывает цикл.
Если вам нужно (понимается это скорее как рекомендация по удобству использования) вводить разделенное пространство чисел, взгляните на следующий код:
Scanner sc = new Scanner(System.in);
Pattern delimiters = Pattern.compile(System.getProperty("line.separator")+"|\\s");
sc.useDelimiter(delimiters);
while (sc.hasNextInt()){
int i = sc.nextInt();
//... do stuff with i ...
System.out.println("Scanned: "+i);
}
Использует Pattern
для разделителей. Я установил его так, чтобы он соответствовал пробелу или разделителю строк. Таким образом, пользователь может ввести числа, разделенные пробелами, а затем нажать клавишу ввода, чтобы их отсканировать. Это может повторяться с таким количеством строк, сколько необходимо. Когда это сделано, пользователь просто нажимает ввод снова без ввода номера. Думаю, это очень удобно при вводе многих чисел.