在Java中将字符串转换为2d数组

时间:2017-12-02 17:32:38

标签: java arrays multidimensional-array grid

我正在编写一个用Java生成数独的作业。 我在[...]中以字符串[9]的形式给出了81个值,就像在数独中一样。 我需要将此字符串分解为9个9的数组,并将单个字符转换为整数。

e.g。我有以下内容:

public static String candidateSolution = "735684291628591347194327865213869574876245139459173682367412958981756423542938716";

我正在考虑做一个for循环,每9个值将它复制到一个新的数组索引。

我已经成功地输出了一个完整的9x9阵列,但内部没有值。

我的数组声明

public static int rows = 9;
public static int columns = 9;
public static int[][] sudokuGrid = new int[rows][columns];

我将字符串转换为数组

public void convertToArray(String candidateSolution){
    for(int i = 0; i < 9; i++){
        for(int j = 0; j < 9; j++){
            sudokuGrid[i][j] = 
Character.getNumericValue(candidateSolution.charAt(i));
        } 

    }
}

我当前的输出是

[[0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0], ect...

2 个答案:

答案 0 :(得分:0)

您可以使用text.charAt()函数; - 使用for循环,在数组中输入单个数字,或使用2个嵌套for循环,一个数字到一个[],另一个数字到另一个[]。 如果我没有非常全面地描述这个主题,请在以下链接中提供更多信息 Get string character by index - Java

如果不是这样,请指明问题,显示代码,你遇到的问题,你做了什么,我会尽力帮助;)

答案 1 :(得分:0)

请参阅Is an array a primitive type or an object (or something else entirely)?

似乎数组是JVM直接创建的对象。在函数调用期间填充了数组,但可能根本没有引用调用函数中的实际数组。

此外,您需要一个每次执行内部循环时递增的整数。否则,行的第一个值将分配给该行的每一列。