我正在尝试将X和空间放入2D数组中,并且在出现问题后我仍然遇到问题。所有我不想是2D数组形式的文本表示,但是当我调试时,我注意到一些单元格中有完整的行而不是一个字符的字符串!
如果您可以将2D阵列可视化为迷宫,X就是墙壁,空间是开放区域,那么它将帮助您了解我在做什么。我只需要每个单元格都有正确的值:X或“”。
while(scan.hasNextLine() && r < rows) {
while(scan.hasNextLine() && c < columns) {
maze[r][c]=scan.next();
c++;
}
c = 0;
r++;
}
答案 0 :(得分:3)
如果您要使用hasNextLine()
,那么您需要使用nextLine()
来检索它。如果您不关心下一行,并且真的想要处理下一个令牌,那么您应该使用hasNext()
和next()
。
答案 1 :(得分:2)
您可以尝试稍微不同的方法:
while(scan.hasNextLine() && r < rows) {
String line = scan.nextLine();
char[] characters = line. toCharArray();
for (int i=0; i< characters.length; i=i+1{
maze[r][i] = characters[i];
}
r++;
}
编辑:查看你的代码,我不知道它是否会导致你说的问题,但你的第二个while循环有
scan.hasNextLine()
并且由于您实际上在那里使用scan.next()
,因此它应该是scan.hasNext()
。此外,如果行中还有任何列,您可能会提前结束循环,也许它不会进入下一行。