将每个板都保存到数据结构中

时间:2009-12-10 01:03:33

标签: java readfile

这是一个愚蠢的问题,我觉得很尴尬,但是我时间紧迫,我被烧了。

我有这个示例输入:

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();





     }*/
    }

}

1 个答案:

答案 0 :(得分:2)

...
br.readLine();
...

您致电readLine(),但实际上并未将其分配给line或对其执行任何其他操作。因此,你一遍又一遍地重复使用第一行。