如何在java中更新二维数组中的列值?

时间:2013-07-08 21:21:37

标签: java arrays sudoku

构建数独游戏。如果他们决定使用列而不是行输入数据,如何使用用户输入更新我的二维数组?我无法弄清楚为什么它不能正常工作?

    else if (dataSelection == 2) {
        if (boardSize == 1) {
            int column = 1; 
            int column2 = 0; 
            while (column < 4) {
                Scanner firstColumn4x4 = new Scanner(System.in);
                System.out.println("Please enter four values using commas for column " + column);
                String column1Values4x4 = firstColumn4x4.next();
                String strArray[] = column1Values4x4.split(",");
                int arraySidesInteger[] = new int[strArray.length];
                for (int i = 0;  i < strArray.length;  i++) {
                    arraySidesInteger[i] = Integer.parseInt(strArray[i]);
                }
                ***fourArray[column-1][column2] = arraySidesInteger[column2];*** //can not figure out thisstatement 
                for (int i = 0; i < fourArray.length; i++)
                {
                    for (int j = 0; j < fourArray.length; j++)
                        System.out.print(fourArray[i][j] + " ");
                    System.out.println();
                }
                column++;
                column2++;                  
            }

如果用户为第1列输入1,2,3,4,我希望它打印出来: 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0

但是我一直得到: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

谢谢!

1 个答案:

答案 0 :(得分:2)

您永远不会遍历行以实际插入用户的值。对于行

fourArray[column-1][column2] = arraySidesInteger[column2];
你可能想要像

这样的东西
for (int i = 0; i < arraySidesInteger.length(); i++) {
    fourArray[i][column2] = arraySidesInteger[i];
}

并完全取消column变量。

(编辑:因此,由于column2是您实际用于索引到右列的变量,因此while循环应该循环,而不是column。)