java - 将文件读入二维数组

标签 java

我的文件名为“s1”,我正在尝试读入我的程序

0 0 5 1 0 0 2 0 8
0 0 0 0 7 0 0 4 9
7 8 0 0 2 0 6 0 5
0 9 0 7 6 2 0 0 0
0 4 7 0 0 0 8 9 0
0 0 0 9 8 4 0 2 0
9 0 8 0 3 0 0 5 1
5 7 0 0 1 0 0 0 0
6 0 3 0 0 9 7 0 0

我需要将这些数字放入一个二维数组中,但我不断得到每行代码的 9x9,我不明白为什么? 我的代码:

public void Read(String s) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader(s));
        String line = " ";
        String[] temp;

        while ((line = br.readLine()) != null) {
            temp = line.split(" "); //split spaces



            for(int i=0;i<board.length;i++){
                for(int j=0;j<board.length;j++){
                    board[i][j]=Integer.parseInt(temp[j]);

                }

        }

当我尝试打印它但替换为每一行时,我的输出x 9:

603009700
603009700
603009700
603009700
603009700
603009700
603009700
603009700
603009700

我需要什么来解决这个问题?

最佳答案

您正在为每一行循环遍历数组的两个维度,因此最后一行是唯一填充内容的行。您当前正在做的是将每一行的内容复制到每一行。

每一行只需一个 j for 循环。 while 循环可以在每个循环中递增 i 一次,而不是在其中使用 i for 循环。也就是说,在每个 while 循环中保持 i 不变,仅在最后增加它,为下一个循环做准备。

关于java - 将文件读入二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19370630/

相关文章:

java - 单击按钮后有什么方法可以向 build.prop 添加行?

java - Spring Boot 同步启动器

java - IN 子句中的多个列 Apache Derby

java - 在其他实例的字段中实例化一个对象

java - Joda - DateTimeFormat - 根据默认区域设置切换 "MM"和 "dd"的位置

java - java 8流和并行流之间的区别

java - 哪个 jar 文件包含 net.opengis.wps.x100 以及如何下载它?

java - 构建超过 89 个项目的 JSONArray

java - 在 doThrow JUNIT 之后捕获异常

java - Firebase firestore 子集合排序和限制