我正在编写一个用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...
答案 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直接创建的对象。在函数调用期间填充了数组,但可能根本没有引用调用函数中的实际数组。
此外,您需要一个每次执行内部循环时递增的整数。否则,行的第一个值将分配给该行的每一列。