Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要帮助发现我的代码中关于通过缓冲区读取矩阵的错误吗_Java_Output - Fatal编程技术网

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