如何只读取文件中的相关信息而忽略其他所有信息?

时间:2011-10-05 22:23:17

标签: java io

有人请编辑我的标题以使此问题更加清晰。

使用示例显示更容易:

myfile.txt的内容:

10/05/2011: 10
10/05/2011: 45.4
10/05/2011: 12.1

我想使用BufferedReader读取日期(10,45.4,12.1)之后的数字并存储在列表中。我该怎么办?我现在正在使用readLine()方法来读取我的数据,但是读取整行。我不想在我的列表中存储日期,只是数字。有可能吗?

5 个答案:

答案 0 :(得分:3)

是的,当然,虽然您必须首先阅读整行,但是一旦完成,您可以编写一个简单的正则表达式来选择您想要的案例编号。

或者,因为数字总是在“:”之后,这也可以起作用

String[] parts = myReadLine.split(":");
String numbers = parts[1];

答案 1 :(得分:2)

类似的东西:

String number = br.readLine().split(":")[1];

...只需添加正确的错误检查....

答案 2 :(得分:1)

您可以使用字符串类的subString方法来获取行所需的部分。

例如。

string line = readline()...;

string number = line.substring(12,14);

或者你可以获得':'的索引并使用该索引作为substring方法的第一个参数。

int i = line.indexOf(": ");
string number = line.substring(i, i+2);

答案 3 :(得分:1)

我无法编辑您的帖子,因为我没有足够高的权限,但此过程称为解析。

算法是

while(!EOF)
{
    //read until ':'
    //put chars after ':' into a string(or char[]) until you reach a \n
}

答案 4 :(得分:0)

检查Scanner,很简单。您可以使用hasNext(String pattern)方法识别模式以阅读所需内容。