2016-04-08 143 views
1

我想在一個數獨板的java中填充一個二維數組。數字來自csv文件。問題是代碼只是讀取前四個數字,然後再次從0重新開始一個新行。我如何阻止這種情況發生,並讓它繼續到數字的末尾?麻煩填充二維數組

String[] lines = Cell.toCSV().split(","); 
    int[] intArray = new int[lines.length]; 

    for (int i = 0; i < intArray.length; i++) { 
     intArray[i] = Integer.parseInt(lines[i]); 
    } //convert string to int 

    int[][] dataArray = new int[4][4]; //4x4 sudoku game 

    for (int col = 0; col < size; col++) { 
     for (int row = 0; row < dataArray[col].length; row++) { 
      dataArray[col][row] = intArray[row]; 
    } 

回答

1

時,需要在原陣列的一個獨立櫃臺:

int index = 0; 
for (int col = 0; col < dataArray.length; col++) { 
    for (int row = 0; row < dataArray[col].length; row++) { 
     dataArray[col][row] = intArray[index++]; 
} 

這是假設intArray有足夠的值來填充二維數組。你應該在這個循環之前驗證它。

順便說一句,二維數組的第一維通常被認爲是行,而不是列,所以你的循環變量名稱有點混亂。

+0

謝謝,那是解決方案:) – snazzyjazzy