【发布时间】:2016-09-26 11:24:20
【问题描述】:
我正在尝试编写一个 java 程序,它逐行读取 texfile 并将每一行存储在自己的数组中,以便这些行将成为数据列。例如下面的data.txt文件有如下数据:
- 122,80,100,119,162,90,136...
- 122,80,100,119,162,90,136...
- 64,74,70,64,76,62,84,78 ...
- 正面、负面、负面 ...
我希望每一行都存储在自己的数组中,因此 4 行,4 个不同的数组,因为每行都属于特定的列。 我能够阅读文本文件。
BufferedReader br = new BufferedReader(new FileReader("C://data.txt"));
ArrayList lines = new ArrayList();
for(String line = br.readLine();line != null;line = br.readLine()) {
line.replaceAll(",","\\.");
String[] fields = line.split(" ");
System.out.println(" " + fields[0]);
lines.add(fields);
}
String[][] strings = (String[][]) lines.toArray(new String[lines.size()][]);
System.out.println("Total Lines: " + strings.length);
这是预期的输出:
【问题讨论】:
-
可以使用List of List(不是数组),更简单。
-
line已经是一行,你把这个line放在一个集合中,比如ArrayList<String>,然后你可以遍历那个集合 -
“合并在一起”是什么意思?你在哪里看到它合并在一起?我看到正在创建一个数组数组。您预计会发生什么,以及会发生什么?
-
请edit您的问题并澄清您的问题描述。 BTW
line.replaceAll(",","\\.");在你的代码中没有做任何事情,除了创建你立即丢弃的字符串(因为字符串是不可变的,所以你不能编辑它们,但你可以将新的字符串实例分配给字符串变量)。也没有必要在replaceAll的替换部分中转义.,实际上,由于您甚至不想使用正则表达式,所以根本不需要replaceAll,请改用replace。 -
另外我在你的
data.txt文件中看不到任何空格,所以split(" ")真的没有意义。所以现在line.replaceAll(",","\\.");问题使您的问题与"String not replacing characters" 重复,并且在空间上拆分看起来像错字问题(这在 Stack Overflow 上是题外话)。
标签: java bufferedreader readfile