我正在扫描一个包含几个分隔符的数独板的文本文件。这是样本输入的样子。扫描输入并跳过某些字符
1 - - | 4 5 6 | - - -
5 7 - | 1 3 b | 6 2 4
4 9 6 | 8 7 2 | 1 5 3
======+=======+======
9 - - | - - - | 4 6 -
6 4 1 | 2 9 7 | 8 3 -
3 8 7 | 5 6 4 | 2 9 -
======+=======+======
7 - - | - - - | 5 4 8
8 r 4 | 9 1 5 | 3 7 2
2 3 5 | 7 4 $ | 9 1 6
它在哪里有“|”作为边界和===== + ==== + ====作为分隔符。我让这段代码忽略了|和==== + === + ===但它跳过那部分代码,并宣布他们为无效字符,添加0在那里放置
public static int [][] createBoard(Scanner input){
int[][] nSudokuBoard = new int[9][9];
for (rows = 0; rows < 9; rows++){
for (columns = 0; columns < 9; columns++){
if(input.hasNext()){
if(input.hasNextInt()){
int number = input.nextInt();
nSudokuBoard[rows][columns] = number;
}//end if int
else if(input.hasNext("-")){
input.next();
nSudokuBoard[rows][columns] = 0;
System.out.print("Hyphen Found \n");
}//end if hyphen
else if(input.hasNext("|")){
System.out.print("border found \n");
input.next();
}// end if border
else if(input.hasNext("======+=======+======")){
System.out.print("equal row found \n");
input.next();
}// end if equal row
else {
System.out.print("Invalid character detected at... \n Row: " + rows +" Column: " + columns +"\n");
System.out.print("Invalid character(s) replaced with a '0'. \n");
input.next();
}//end else
}//end reading file
}//end column for loop
}//end row for looop
return nSudokuBoard;
}//end of createBoard
我带家教,但我不谈论它了不记得他如何解决这个问题的建议。
你是怎样编辑James的? – 2012-02-19 04:23:16
您可以点击“1分钟前编辑过”来查看编辑。在这种情况下,他只是将代码的最后一行的格式化。 – 2012-02-19 04:24:26
哇。整洁的功能。谢谢欧内斯特。 – 2012-02-19 04:25:29