如何扫描文本文件并将其转换为二维字符数组?

How do you scan a text file and convert it to a 2D char array?

我已收到文本文件,我正在尝试将它们转换为二维字符数组以供进一步使用。发生的事情是它似乎正在获取第一个索引并一遍又一遍地复制它,直到它达到 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

请帮助它弄乱我的代码!

而不是 testBoard[i][j]= line.charAt(i); 试试 testBoard[i][j]= line.charAt(j);

你不需要两个循环。按如下方式编写循环:

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'} 等等。这就是这个循环正在做的事情。

如有任何问题,请随时发表评论 doubt/issue。