[从Java文本中读取2D数组

问题描述 投票:0回答:1

祝你好运,所以我想从2D数组文本文件中读取如下代码。这是我编写的代码。我正在创建游戏板。电路板的尺寸,因此程序只能从第二行开始读取。我尝试了许多方法来执行此操作,例如使用扫描仪功能等。我的一个朋友告诉我我的方法是错误的。修复该代码以执行该特定功能。您诚挚地感谢您的帮助。

7 7
.......
.......
....x..
....x..
....x..
...xx..
...sx.t
public class hey {
    public static void main(String[]args) {

    }

    public static  String[][] read() throws IOException {
        BufferedReader bo = new BufferedReader(new("board_01.txt"));
        int column = Integer.parseInt(bo.readLine());
        int row = Integer.parseInt(bo.readLine());
        String[][] map = new String[row][column];
        for (int i = 0; i < row; i++) {
            String line = bo.readLine();
            for (int j = 0; j < column; j++) {
                map[i][j] = String.valueOf(line.charAt(j));
            }
        } 
        bo.close();
        return map;
    }
}
java arrays multidimensional-array text-files
1个回答
0
投票

这是错误的:

int column = Integer.parseInt(bo.readLine());

int row = Integer.parseInt(bo.readLine());

这会尝试在两行中读取两个int,但这不是文件的设置方式-而是一行中的两个前导int,即第一行

相反,您应该拥有:

int column = bo.readInt();    
int row = bo.readInt();
bo.readLine();

您在第一行中读取了2个整数,然后捕获并吞下了行尾标记,以便扫描程序移至下一行

此外,您的main方法不能为空,否则您的程序将根本无法执行任何操作。

© www.soinside.com 2019 - 2024. All rights reserved.