如何扫描文本文件并将其转换为2D字符数组



我收到了文本文件,我正试图将它们转换为2D字符数组以供进一步使用。现在的情况是,它似乎正在获取第一个索引,并一遍又一遍地复制它,直到它达到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(j);而不是testBoard[i][j]= line.charAt(i);

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

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

请注意,Java中的2-D数组是数组的数组。因此,testBoard[0]应该被分配给{'B', 'Q', 'B', 'B'}testBoard[1]应该被分配为{'B', 'B', 'B', 'Q'}等等。这就是这个循环正在做的。

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

最新更新