2013-10-14 70 views
0

我的文件名爲「S1」我嘗試讀入到我的程序讀取文件時到2 d陣列

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]); 

       } 

     } 

和我outputx 9時,我嘗試打印,但每行替換爲:

603009700 
603009700 
603009700 
603009700 
603009700 
603009700 
603009700 
603009700 
603009700 

我需要什麼來解決這個問題?

+0

爲什麼不使用'Scanner'?更適合這種情況。 –

回答

2

您正在遍歷每行的數組的兩個維度,因此最後一行是填充內容的唯一行。你現在正在做的是,對於每一行,你將行的內容複製到每一行。

對於每一行,您只需要一個j for循環。 while循環可以遞增i每個循環一次,而不是在其內部有一個i for循環。也就是說,在每個while循環中保持i不變,只在最後增加它,以準備下一個循環。

+0

omg我覺得很愚蠢哈哈,非常感謝你! – user1547386