Как вы сканируете текстовый файл и конвертируете его в двумерный массив символов? - PullRequest
0 голосов
/ 01 апреля 2020

Мне выданы текстовые файлы, и я пытаюсь преобразовать их в массив двумерных символов для дальнейшего использования. Происходит то, что он, кажется, берет первые индексы и копирует их снова и снова, пока не достигнет размера int и не поверит, что есть только один столбец. Я также задавался вопросом, имеет ли это какое-то отношение к charAt, поскольку я не знаком с этим.

public static void main(String[] args) throws FileNotFoundException
    {
        System.out.println("Enter file path here!");
        Scanner input = new Scanner(System.in);
        File file = new File(input.nextLine());
        Scanner inputFile = new Scanner(file);
        int size = inputFile.nextInt();
        char[][] testBoard = new char[size][size];
        for (int i = 0; i < size; i++)
        {
            String line = inputFile.next();
            for (int j = 0; j < size; j++)
            {
                testBoard[i][j]= line.charAt(i);
                System.out.println(testBoard[i][j]);
            }
        }

Пример файла:

4
BQBB
BBBQ
QBBB
BBQB

Пожалуйста, помогите мне испортить мой код!

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Вместо testBoard[i][j]= line.charAt(i); попробуйте testBoard[i][j]= line.charAt(j);

0 голосов
/ 01 апреля 2020

Вам не нужно две петли. Напишите свой l oop следующим образом:

for (int i = 0; i < size; i++) {
    String line = inputFile.nextLine();
    testBoard[i] = line.toCharArray();
}

Обратите внимание, что двумерный массив в Java является массивом массивов. Таким образом, testBoard[0] должно быть присвоено {'B', 'Q', 'B', 'B'}, testBoard[1] должно быть присвоено {'B', 'B', 'B', 'Q'} и так далее. Это то, что делает этот l oop.

Не стесняйтесь комментировать в случае каких-либо сомнений / проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...