这是一个愚蠢的问题,我觉得很尴尬,但是我时间紧迫,我被烧了。
我有这个示例输入:
1 4 2
3 0 5
6 7 8
3 1 2
6 4 5
0 7 8
-1 -1 -1
每组数字代表8个拼图的棋盘,我不知道文本文件中会出现多少个棋盘。我只知道它的结尾标有 - 1 -1 -1.
我知道这件事的逻辑很简单,我只是累了,不能把代码付诸实践。
第一块板的输出应为:
142305678
和第二个
312645078
我得到了:
142142142
312312312
到目前为止,这是我的代码:
package puzzle;
import java.io.*;
import java.util.*;
/**
*
* @author Administrator
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void saveTheLine (String [] splittedLine ) {
}
public static void main(String[] args) throws IOException{
// TODO code application logic here
FileReader fr = new FileReader("E://Documents and Settings//Administrator//My Documents//NetBeansProjects//8Puzzle//src//puzzle//ocho.in");
BufferedReader br = new BufferedReader(fr);
/*
String line = br.readLine();
while (!line.equals("-1 -1 -1")) {
line= br.readLine();
//ArrayList <String> board = new ArrayList<String>();
String board = new String("");
while (!line.equals(null))
{
board = board + line;
line= br.readLine();
}
System.out.println("a board is " + board);
}
*/
while (true) {
String line= br.readLine();
if (!line.equals("-1 -1 -1")){
if (line.equals(" ")) {
continue;
}
String board = new String (" ");
ArrayList<String> board2 = new ArrayList<String>();
for (int i =0; i<3; i++){
String [] splittedLine = line.split(" ");
board = line+board;
for (int addToBoardIndex =0; addToBoardIndex < splittedLine.length; addToBoardIndex++){
board2.add(splittedLine[addToBoardIndex]);
}
br.readLine();
}
//System.out.println(board);
for (String s : board2) {
System.out.print(s);
}
System.out.println(" ");
}
else if (line.equals("-1 -1 -1")) {
break;
}
}
/*String line = br.readLine();
while (!line.equals("-1 -1 -1"))
{
//StringBuilder board = new StringBuilder("");
ArrayList<String> board = new ArrayList<String>();
for (int lineIndex =0; lineIndex<3; lineIndex++){
line = br.readLine();
String [] splittedLine = line.split(" ");
board.add(splittedLine [0]);
board.add(splittedLine [1]);
board.add(splittedLine [2]);
}
for (String boardIndex: board){
System.out.println(boardIndex);
}
String blankLine = br.readLine();
}*/
}
}
答案 0 :(得分:2)
... br.readLine(); ...
您致电readLine()
,但实际上并未将其分配给line
或对其执行任何其他操作。因此,你一遍又一遍地重复使用第一行。