我收到了文本文件,我正试图将它们转换为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'}
等等。这就是这个循环正在做的。
如有任何疑问/问题,请随时发表评论。