我的文件名为“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/