我需要从txt文件中找到一些特定数据,请参阅下面的代码。
while ((line = bufferedReader.readLine())!= null) {
//pokial obsahuje string zapíš do array
if (line.toLowerCase().contains("list c.")) {
parsedData.add(line);
}
if(line.toLowerCase().startsWith("re")) {
parsedData.add(line);//add found data to array
//i need to access and save second and third line after this one
}
System.out.println(line);
}
在第二种情况下,当我找到一条以" re"我需要在这个特定的一行之后保存第二行和第三行。
答案 0 :(得分:1)
从你的问题我不确定,但如果你的目标是在接收到线路开始后接下来几行(例如2),你可以通过一些标志来做到这一点。
boolean needsToConsider = false;
int countOfLines = 2;
while ((line = bufferedReader.readLine())!= null) {
if(needsToConsider && countOfLines > 0){
// add here
countOfLines--;
if(countOfLines == 0)
needsToConsider = false;
}
//pokial obsahuje string zapíš do array
if (line.toLowerCase().contains("list c.")) {
parsedData.add(line);
}
if(line.toLowerCase().startsWith("re")) {
parsedData.add(line);//add found data to array
//i need to access and save second and third line after this one
needsToConsider = true;
}
答案 1 :(得分:0)
这里一个简单的方法可能是使用计数器来跟踪击中第二和第三行:
int counter = 0;
while ((line = bufferedReader.readLine())!= null) {
if (line.toLowerCase().contains("list c.")) {
parsedData.add(line);
}
else if (line.toLowerCase().startsWith("re")) {
parsedData.add(line);
counter = 2;
}
else if (counter > 0) {
// add second and third lines after "re" here
parsedData.add(line);
--counter;
}
}
更高级的方法可能是读取感兴趣的文本的整个部分,然后使用正则表达式匹配器来提取您想要的内容。