Как мне разбить файл чисел на java? - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь преобразовать файл, полный чисел (9x9), в читаемый массив, основанный на столбцах и строках. Это для создателя игры судоку. Файл выглядит так:

0,0,2,9,8,0,5,0,0
4,0,0,0,7,0,0,1,3
0,3,9,6,0,4,0,7,0
2,0,0,0,5,6,4,0,0
8,4,0,3,0,0,2,0,1
9,0,7,0,0,1,0,8,6
6,0,0,7,0,5,1,3,0
0,9,1,4,0,0,0,0,5
0,2,0,0,3,0,6,0,8

Где я использую «0» в качестве пробелов. Я хочу разделить числа на запятые, поэтому для первого ряда я хочу, чтобы они читались: gameBoard [0] = [0,0,2,9,8,0,5,0,0] или как gameBoard [0] [4] = [9]. Я использую массив gameBoard [] [].

Некоторые люди говорили мне, что было бы полезно включить код, который я пробовал, вот он:

        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                gameBoard[i][j] = game.split(",");
            }
        }

Этот раздел код находится внутри метода, который вызывается через конструктор.

1 Ответ

4 голосов
/ 20 февраля 2020

Небольшая справка для нового участника.

    String[][] gameBoard = new String[9][9];
    File f = new File("zz_play9.txt");               
    try {
        BufferedReader b = new BufferedReader(new FileReader(f));

        String readLine = "";        
        int linecounter =0;
        while ((readLine = b.readLine()) != null) {
            System.out.println(readLine);
            gameBoard[linecounter++] = readLine.split(",");
        }
        b.close();
    } catch (IOException ex) {
        Logger.getLogger(zz_play9.class.getName()).log(Level.SEVERE, null, ex);
    } 

Я ввел ваши стартовые данные в файл с именем zz_play9.txt.

Запустив программу, вы получите :

0,0,2,9,8,0,5,0,0
4,0,0,0,7,0,0,1,3
0,3,9,6,0,4,0,7,0
2,0,0,0,5,6,4,0,0
8,4,0,3,0,0,2,0,1
9,0,7,0,0,1,0,8,6
6,0,0,7,0,5,1,3,0
0,9,1,4,0,0,0,0,5
0,2,0,0,3,0,6,0,8

и массив gameBoard [] [] содержит нужные данные. Веселитесь.

...