Java 需要帮助发现我的代码中关于通过缓冲区读取矩阵的错误吗
这是一个家庭作业问题,但我已经做了很长一段时间了,我一定是有点瞎了,所以我真的很感谢你帮我发现错误Java 需要帮助发现我的代码中关于通过缓冲区读取矩阵的错误吗,java,output,Java,Output,这是一个家庭作业问题,但我已经做了很长一段时间了,我一定是有点瞎了,所以我真的很感谢你帮我发现错误 public class Maze { int[][] grid; private final int TRIED = 2; private final int PATH = 3; public Maze(String fileName) throws IOException { BufferedReader in = new BufferedR
public class Maze {
int[][] grid;
private final int TRIED = 2;
private final int PATH = 3;
public Maze(String fileName) throws IOException {
BufferedReader in = new BufferedReader(new FileReader(fileName));
String s;
String [] aux= new String [2];
int x=0;
aux=in.readLine().split("\\s*[, .]\\s*");
int dimensao=Integer.parseInt(aux[0]);
String [][] gridString= new String [dimensao][dimensao];
grid= new int[dimensao][dimensao];
while ((s=in.readLine())!=null){
gridString [x]=s.split("\\s*[,.]\\s*");
x++;
System.out.println(s);
}
System.out.println();
for (int i=0;i<gridString.length;i++){
for(int j=0;j<gridString[0].length;j++){
System.out.print(gridString[i][j]+" ");
switch (gridString[i][j]) {
case "true":
grid[i][j]=1;
break;
case "false":
grid[i][j]=0;
break;
}
}
System.out.println();
}
for (int i=0;i<grid.length;i++){
for(int j=0;j<grid[0].length;j++){
System.out.print(grid[i][j]);
}
System.out.println();
}
}
目标是将其转换为整数矩阵,其中“真”表示为1,“假”表示为0。
事情是这样的,我的输出是这样的
10100
10110
00000
11010
00010
我只是不知道最后一列上的“真”值发生了什么。我想这可能是第二次拆分中缺少的空格-可能读入为“真”最后一列中是否有换行符或包含在真或假中的内容。字符串的值不匹配true或false,因为您的开关没有默认值,它只会将网格条目留空(可能默认为0)。@MarkS。这是不可能的,因为
\s
还将匹配您面临的问题的新行…我尝试了与预期相同的代码…检查您正在传递的文件…我认为每行末尾都有一些额外的空格…尝试删除这些空格。
10100
10110
00000
11010
00010