我的文件名为“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
我需要将这些数字放入2d数组中,但我不断得到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
我需要解决这个问题?
答案 0 :(得分:2)
您为每一行循环遍历数组的两个维度,因此最后一行是唯一填充内容的行。您目前正在做的是,对于每一行,您将行的内容复制到每一行。
每行只需要一个j
for循环。 while
循环可以在每个循环中递增i
,而不是在其中包含i
循环。也就是说,在每个i
循环中保持while
不变,仅在结束时递增它,以准备下一个循环。