将一维字符串导入二维int数组

时间:2018-03-14 11:36:20

标签: java arrays import int sudoku

我想导入数独板并将它们转换为[9] [9]数组。

Example of a couple of printed boards:

这是第一块板子: 370000001000700005408061090000010000050090460086002030000000000694005203800149500

前9个数字填满第一行,下一个9个数字填满第二行等。

 public static void main(String[] args) {
    File in = new File("board.txt");
    try {
        Scanner input = new Scanner(in);
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                grid[i][j]= input.nextInt();
            }

        }
    } catch (FileNotFoundException e) {

    }

此代码可以在文本文件中导入单个整数,例如:

0
1
3
5
0
8
etc

那么如何编辑我拥有的代码以便它可以&#34;读取&#34;一行不带空格的数字,并从元素中的文本文件中导入每个数字。

或者我如何创建一个填充相同功能的新程序?

2 个答案:

答案 0 :(得分:1)

使用scanner.nextLine阅读该行并使用Integer.parseIntchar转换为int

    Scanner input = new Scanner(in);
    String line = input.nextLine();   
    for (int i = 0; i < 9; i++) {
        for (int j = 0; j < 9; j++) {
            grid[i][j]= Integer.parseInt(line.charAt(i * 9 + j));
        }
    }

答案 1 :(得分:0)

如果您使用的是Java 8,则可以阅读所有内容,然后您可以按照以下步骤操作:

[3, 7, 0, 0, 0, 0, 0, 0, 1]
[0, 0, 0, 7, 0, 0, 0, 0, 5]
[4, 0, 8, 0, 6, 1, 0, 9, 0]
[0, 0, 0, 0, 1, 0, 0, 0, 0]
[0, 5, 0, 0, 9, 0, 4, 6, 0]
[0, 8, 6, 0, 0, 2, 0, 3, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0]
[6, 9, 4, 0, 0, 5, 2, 0, 3]
[8, 0, 0, 1, 4, 9, 5, 0, 0]

<强>输出

import android.support.test.filters.SmallTest;