有人请编辑我的标题以使此问题更加清晰。
使用示例显示更容易:
myfile.txt的内容:
10/05/2011: 10
10/05/2011: 45.4
10/05/2011: 12.1
我想使用BufferedReader读取日期(10,45.4,12.1)之后的数字并存储在列表中。我该怎么办?我现在正在使用readLine()方法来读取我的数据,但是读取整行。我不想在我的列表中存储日期,只是数字。有可能吗?
答案 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)方法识别模式以阅读所需内容。