Saving each of this boards into a Data Structure [closed]
This is a dumb question and I feel embarrassed to ask it, but I'm pressed for time and I'm burnt out.
I have this sample input:
1 4 2
3 0 5
6 7 8
3 1 2
6 4 5
0 7 8
-1 -1 -1
Each group of numbers represent开发者_如何学JAVAs a board of the 8 puzzle, I don't know how many boards will appear on the text file. I only know its end is marked with -1 -1 -1.
I know the logic for this thing is simple, I'm just tired and can't put the code to work.
The output for the first board should be:
142305678
and for the second one
312645078
I'm getting:
142142142
312312312
Here's my code so far:
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();
}*/
}
}
... br.readLine(); ...
You call readLine()
, but you don't actually assign it to line
or do anything else with it. Thus you keep re-using the first line over and over.
精彩评论