【发布时间】:2014-06-06 14:32:11
【问题描述】:
我很难找到一种有效的方法来从这种格式的文本文件中提取特定数据,该文件有很多行。
<"Name" "double" "double" "double" [...]>
双打的数量在 txt 文件的每一行都不同,
我只对 txt 文件中每一行的第一个 double 感兴趣。
我尝试这样做的方式是:
Scanner doubleScan = new Scanner(System.in).useDelimiter("(\\w)(\\s+)");
String[] columnOne = elementScan.next().split(" ");
尝试使用正则表达式使扫描仪期待,但如果一行中的双精度数未知,则实际上不起作用。然后尝试将所有挑选出来的(每行的第一个)双打存储在一个数组中
如果您有任何建议,我们将不胜感激,仅限扫描仪。
【问题讨论】:
-
如果要解析文件,请使用 Scanner,如果要逐行读取文件,请使用 BufferedReader。
-
真的必须用Scanner来完成吗?在您的代码示例中,您使用的是
split,所以它不是纯扫描仪解决方案。 -
如果您可以使用
split,那么可以使用nextLine()而不是next()来获取整行,然后将其拆分为空格并读取结果数组的元素[1]。顺便说一句,您必须循环执行。