Вы неправильно используете Scanner.
Scanner.nextInt () сканирует следующий токен ввода как int, а не как одиночные числа. Таким образом, каждая строка вашего ввода будет сканироваться как число. Строка 00000000000000000000
будет сканироваться как 0
, а строка 00000000010000000000
- это то место, где возникло исключение, потому что 10000000000
превысило максимальное значение Integer, которое составляет 2147483647
.
Вы можете разделите входные строки на токены по пробелу.
Лучшее решение - читать строки как строку, а затем разбивать строку на числа. Введите exit
в новой строке, чтобы остановить сканирование.
int curRow = 0;
while (true) {
String line = s1.nextLine();
if ("exit".equals(line)) {
break;
} else {
// assume there are n numbers in range 0 - 9 for each line you input
char[] numArray = line.toCharArray();
for (int i = 0; i < n; i++) {
myArray1[curRow][i] = Integer.parseInt(String.valueOf(numArray[i]));
}
curRow++;
}
}