祝你好运,所以我想从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;
}
}
这是错误的:
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方法不能为空,否则您的程序将根本无法执行任何操作。