如何从String输入生成2D数组? (SudokuSolver项目)

问题描述 投票:0回答:1

我试图制作一个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]);

        }
    }

}
java multidimensional-array sudoku
1个回答
0
投票

您没有创建2D数组。rows[i]是字符串,而不是整数。

check this link

© www.soinside.com 2019 - 2024. All rights reserved.