此问题已在此处找到答案:
什么是indexoutofboundsexception?我怎样才能修好它[(1份答覆)
是什么导致java.lang.arrayindexoutofboundsexception以及如何防止它((26个答案)
4小时前关门了。
system.out.println(“进入迷宫”);
char[][] maze = new char[height][width];
for (int i=0;i<height;i++){
String line= scanner.nextLine();
for (int j=0;j<width;j++){
maze[i][j]= line.charAt(j);
}
}
2条答案
按热度按时间qlvxas9a1#
我相信是从电话线传来的
maze[i][j]= line.charAt(j);
因为输入来自scanner
不保证长度j
.q0qdq0h22#
异常正在由引发
line.charAt(j)
,它告诉您它无法获取line
... 也就是说line
是空的。阅读代码时,它假设输入包含(至少)
height
每行包含(至少)width
人物。我可以想出两个可能的异常根源:
其中一个输入行可能真的是空的。
你可能会收到一条空行,因为你是如何处理这个问题的
Scanner
在此代码之前。例如,如果您以前打过电话nextInt
要读取的值,请执行以下操作:height
及width
,这些数字后面的行分隔符将保留在扫描仪的输入中。所以下一个电话是nextLine
将交付该行的其余部分。。。这可能是一个空字符串。