这应该是一个数独谜题解决,它需要我用一个二维的ArrayList的谜题。
我想,以填补使用数字从一个txt文件的ArrayList。 在我的测试类的代码可以使一个9x9的ArrayList和使用我做了测试如何填充一个二维的ArrayList作品的循环数字1-9填充它。
import java.util.*;
import java.io.*;
public class test
{
public static void main(String args[])
{
ArrayList<ArrayList<Integer>> data = new ArrayList<ArrayList<Integer>>();
//Loop to add 9 rows
for(int i=1; i<=9; i++)
{
data.add(new ArrayList<Integer>());
}
//Loop to fill the 9 rows with 1-9
for(int k=0; k<9; k++)
{
for(int j=1; j<=9; j++)
{
data.get(k).add(j);
}
}
//Loop to print out the 9 rows
for(int r=0; r<9; r++)
{
System.out.println("Row "+(r+1)+data.get(r));
}
//Reads the file. Need to use this to set the array
File file = new File("F:\\Data Structures 244\\FINAL PROJECT\\SudokuSolver\\sudoku.txt");
try {
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
我的问题是当我试图把我都保存在TXT文件中的号码,并利用它们来填补他们的读取次序ArrayList中。 我想这个代码,以便它会从txt文件读出数字,并将其放置到ArrayList中有它重复因此它会做从TXT文件中的前9号到ArrayList中的第一行,然后进入下一个行中的txt文件,以及ArrayList中,以填补这些数字。
File file = new File("F:/Data Structures 244/FINAL PROJECT/SudokuSolver/sudoku.txt");
//Needs this try and catch
try {
Scanner solutionFile = new Scanner(file);
int cell=0;
while (solutionFile.hasNextInt())
{
//Loop to fill the 9 rows with the numbers from the sudoku.txt
for(int k=0; k<9; k++)
{
for(int j=1; j<=9; j++)
{
cell = solutionFile.nextInt();
data.get(k).add(cell);
}
}
}
solutionFile.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
for(int r=0; r<9; r++)
{
System.out.println("Row "+(r+1)+data.get(r));
}
我得到一个Exception in thread "main" java.util.NoSuchElementException
这一行cell = solutionFile.nextInt();
这是sudoku.txt文件
346791528
918524637
572836914
163257489
895143762
427689351
239415876
684372195
751968243
我试了一下一样,在第一和得到这个错误,但后来我尝试把所有的号码并将其放置在同一行,所以我的for循环将只读取它们在同一时间9个的数字,但是当我测试打印的ArrayList或者又该在它添加它们之后整个ArrayList中是空白的。
什么是它不是从文件中读取数字和将它们放入ArrayList中,以便打印机打印的问题?