我正在尝试加载包含字符和两个数字的文本文件,这看起来像这样
5 7
++++M++
+ + +
++ ++
+ ++ +
+X+++++
其中5和7对应于行数和列数。我试图逐行读取,然后将数字转换为数组中的值,但由于某种原因,我甚至无法
Scanner inputFile = new Scanner(new FileReader(fid));
maze_r = inputFile.nextInt();
maze_c = inputFile.nextInt();
int counter = 0;
while(inputFile.hasNextLine()){
rowArray = inputFile.nextLine();
System.out.print("\n"+rowArray);
char index;
for(int ind = 0; ind == (maze_c-1);ind++){
index = rowArray.charAt(ind);
System.out.print(index);
if(index == ' ')
theMaze[counter][ind] = 0;
if(index == '+')
theMaze[counter][ind] = 1;
if(index == 'M')
theMaze[counter][ind] = 2;
if(index == 'X')
theMaze[counter][ind] = 3;
}
}
System.out.print(Arrays.toString(theMaze));
}
当我这样做时,它会将行打印为字符,但会为我尝试制作的数组打印一个空格。我不知道我做错了什么,由于某种原因它不会计算while循环中的for循环。当我在循环中编写类似system.out.print的内容时,没有打印出来。我究竟做错了什么?
答案 0 :(得分:1)
for
循环中的第二个条件是true
,以便循环继续:
ind == (maze_c-1) // ⇒ your loop breaks because ind is not equal to the rvalue
应该改为:
ind < maze_c
将其视为“同时”状态。
答案 1 :(得分:0)
for(int ind = 0; ind ==(maze_c-1); ind ++){ 你的循环条件错误,ind ==(maze_c-1)总是为true,所以循环中的代码无法运行,那么System.out.print(Arrays.toString(theMaze))的结果为null < / p>