我想导入数独板并将它们转换为[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;一行不带空格的数字,并从元素中的文本文件中导入每个数字。
或者我如何创建一个填充相同功能的新程序?
答案 0 :(得分:1)
使用scanner.nextLine
阅读该行并使用Integer.parseInt
将char
转换为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;