-5

这是一个愚蠢的问题,我觉得问它很尴尬,但我时间紧迫,我筋疲力尽。

我有这个示例输入:

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





     }*/
    }

}
4

1 回答 1

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

你打电话给readLine(),但你实际上并没有将它分配给它line或用它做任何其他事情。因此,您不断重复使用第一行。

于 2009-12-10T01:15:23.837 回答