Сделайте это следующим образом:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Program {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter a sequence of integer values to be sent to the server (x to terminate)");
List<Integer> numberList = new ArrayList<Integer>();
String[] data = scanner.nextLine().split(" ");
int i = 0;
while (i < data.length && data[i].matches("\\d+")) {// The regex \d+ matches only integers
numberList.add(Integer.parseInt(data[i]));
i++;
}
System.out.println(numberList);
}
}
Пробный прогон:
Enter a sequence of integer values to be sent to the server (x to terminate)
10 20 30 X
[10, 20, 30]
Кроме того, не закрывайте Scanner
для System.in
, так как также закрывает System.in
.
Не стесняйтесь комментировать в случае сомнений / проблем.