我正在读取一个文本文件,并将每个逗号分隔的字符串存储在一个二维数组中。我需要一种方法来分配每个单独的字符串给一个变量。
try {
Scanner scanner = new Scanner(new File(filePath));
while (scanner.hasNextLine()) {
String[] arr = scanner.nextLine().split(",");
for (String item : arr) {
list.add(new String[] { item });
}
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
String[][] ar = list.toArray(String[][]::new);
System.out.println(Arrays.deepToString(ar[0]));
打印
[A6]
我不能让它像这样打印每个值:
A6
这是文本文件:
A6,A7
F2,F3
F6,G6
您的数组设置不正确。
你说你想要一个二维数组。二维数组是这样的
[ <--- this line is the beginning of the outer array
[A6, A7], <--- this line is the entirety of the first inner array
[F2, F3], <--- this line is the entirety of the second inner array
[F6, G6] <--- this line is the entirety of the third inner array (no comma)
] <--- this line is the end of the outer array
但是你的数组是这样的
[
[A6],
[A7],
[F2],
[F3],
[F4],
[F6],
[G6]
]
从技术上讲,上面也是一个二维数组。但这几乎肯定不是你想要的。
如果是这样的话,那么这三行会给你带来麻烦。
for (String item : arr) {
list.add(new String[] { item });
}
这个for循环不是必需的。把那个for循环替换成这个
list.add(arr);
编辑-在阅读了其他评论之后,我听到你的意思是在每个内部数组中有一个元素的可能性。就像前面提到的其他评论一样,这没有多大意义,但是如果这真的是你想要的,那么就拿你的旧程序,然后把System.out.println(a[0][0])
作为程序的最后一行来完成这个任务。