#java #arrays #matrix #multidimensional-array
#java #массивы #матрица #многомерный-массив
Вопрос:
Я работаю над HackerRank, платформой, которая позволяет учащимся загружать код своих домашних заданий, затем платформа выполняет несколько случайных тестов для нашего кода. Пользуясь этой возможностью, мой учитель попросил меня создать матрицу на основе входных данных из HackerRank, а затем заполнить ее дополнительными входными данными с этой платформы.
Я создал этот код для создания матрицы с размерами, которые нужны HackerRank, а также для заполнения ее значениями, сгенерированными платформой, но, похоже, в моем коде ошибка, и я ее не вижу.
Это дает мне эту ошибку:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Solution.main(Solution.java:14)
Мой код:
public class Solution {
public static void main(String[] args) {
Scanner prompt = new Scanner(System.in);
int[][] array = new int [prompt.nextInt() 1][prompt.nextInt()];
// Create matrix
for (int a = 0; a < array.length; a ){
for (int b = 0; b < array[a].length; b ){
array[a][b] = prompt.nextInt(); /*This is the line 14*/
}
}
for (int h=0; h < array.length; h ){
for(int c=0; c < array[h].length; c ){
System.out.printf("]",array[h][c]);
}
System.out.println("");
} } }
Ответ №1:
Когда сканер выдает исключение NoSuchElementException, это означает, что вы пытаетесь выполнить чтение со сканера, когда вы уже достигли конца ввода.
Попробуйте использовать hasNextInt непосредственно перед nextInt в цикле for .
Ответ №2:
NoSuchElementException
в этом случае указывает, что больше нет токенов для чтения. Вы предоставили достаточно значений на входе?
Смотрите: https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html#nextInt —