麻烦填充2d数组

时间:2016-04-08 02:01:13

标签: java arrays multidimensional-array 2d

我正在尝试在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 个答案:

答案 0 :(得分: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有足够的值来填充2D数组。您应该在此循环之前验证它。

顺便说一下,2D数组的第一个维度通常被认为是行而不是列,所以你的循环变量名称有点令人困惑。