我正在HackerBank上工作,这是一个允许学生上传家庭作业代码的平台,然后该平台对我们的代码进行一些随机测试。在这个机会上,我的老师要求我根据HackerBank的输入创建一个矩阵,然后用这个平台的更多输入填充它。
我创建这个代码是为了创建一个具有HackerBank想要的维度的矩阵,并用平台生成的值重新填充它,但我的代码上似乎有一个错误,我没有看到。
它给了我这个错误:
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("%5d",array[h][c]);
}
System.out.println("");
} } }
当扫描仪抛出NoSuchElementException时,意味着您正试图在到达输入末尾时从扫描仪读取。
尝试在for循环中的nextInt之前使用hasNextInt。
NoSuchElementException
在这种情况下表示没有更多的令牌要读取。你在输入中提供了足够的值吗?
请参阅:https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html#nextInt--