我是一名学生,我以前从未尝试过像这样明确声明一个数组。
我想将多个数独网格放入最终产品的类中,否则我将在一个语句中声明和初始化数组。
我希望“已解决”指的是不同的网格,具体取决于选择的是简单、中等还是硬数独网格。那可能吗?
我编写它的方式会导致空指针异常,但我不确定如何将数组声明为类成员,然后在每个构造函数中显式初始化它。
如果您能在语法上理顺我,我将不胜感激。我想我声明该数组的方式一定有问题。
这是我用来测试它的:
public class SudokuDriver {
public static void main(String[] args) {
SudokuSolution solved = new SudokuSolution();
System.out.println(solved.getSolved(0, 1));
System.out.println(solved.toString());
}}
这是我正在测试的课程:
公共类数独解决方案{
private int [][] solved;
public SudokuSolution () {
int [][] solved = {
{6, 9, 7, 8, 3, 1, 4, 2, 5},
{2, 8, 4, 9, 7, 5, 1, 6, 3},
{5, 3, 1, 2, 6, 4, 9, 7, 8},
{3, 4, 9, 1, 5, 6, 2, 8, 7},
{7, 5, 8, 4, 9, 2, 3, 1, 6},
{1, 6, 2, 7, 8, 3, 5, 9, 4},
{4, 2, 6, 3, 1, 7, 8, 5, 9},
{8, 1, 5, 6, 4, 9, 7, 3, 2},
{9, 7, 3, 5, 2, 8, 6, 4, 1}
};
}
public int getSolved(int a, int b) {
return solved[a][b];
}
public String toString() {
StringBuilder grid= new StringBuilder();
int i, j;
for (i=0 ; i < solved.length; i++) {
for (j = 0; j < solved.length; j++) {
grid.append(solved [i][j] + ((i==solved.length - 1) ? "\n" : " "));
}
}
return grid.toString();
}
}