我试图制作一个SudokuSolver,其中sudokupuzzle被读为一个由点(。)和数字组成的字符串。
创建setBoard()方法:
文本应包含九行,每行包含九个字符。每行以行结束字符\ n结尾。不是数字的字符应解释为空正方形。 setBoard方法应该检查文本的行数和字符数是否正确。它还应检查给出的问题是否合法,即每个数字每个行,列或块仅出现一次。如果出现问题,则setBoard方法应生成类型为IllegalArgumentException的异常,并带有相应的错误消息。
字符串输入示例:3 ... 8 ....... 7 .... 51 ........ 36 ... 2..4 .... 7 ..... ...... 6.13..452 ........... 8 ..
我很难把这个难题变成二维数组,这就是为什么我来这里!我已经设法把这个难题弄成一个普通的数组,但是我不确定这怎么帮助。金达在这里迷路了...
这里是我到目前为止的代码,请告诉我是否需要提供更多信息!
public void setBoard(String input) {
if (input.contains(".")) {
String newInput = input.replace(".", "0");
String[] rows = newInput.split("\n");
System.out.println(newInput);
int[] arr = new int[rows.length];
for (int i = 0; i < rows.length; ++i) {
arr[i] = Integer.valueOf(rows[i]);
}
}
}
您没有创建2D数组。rows[i]
是字符串,而不是整数。