Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 搜索包含关键字的两个单词之间的文本文件行_Java_Text Files_Keyword - Fatal编程技术网

Java 搜索包含关键字的两个单词之间的文本文件行

Java 搜索包含关键字的两个单词之间的文本文件行,java,text-files,keyword,Java,Text Files,Keyword,我必须从包含关键字(由两个单词分隔)的文本文件中提取行 我已经只找到了包含关键字的行(withcontains(string)),但是我还需要在这之前和之后有一对行,可能不计算行数,而是搜索这组行的第一个和最后一个字 我怎么能做到 在第一步中,您可以将这些行存储在java.util.List中,然后使用索引遍历该列表 List<String> lines = new ArrayList<String>(); while(reader.ready()){ lines.a

我必须从包含关键字(由两个单词分隔)的文本文件中提取行

我已经只找到了包含关键字的行(with
contains(string)
),但是我还需要在这之前和之后有一对行,可能不计算行数,而是搜索这组行的第一个和最后一个字


我怎么能做到

在第一步中,您可以将这些行存储在java.util.List中,然后使用索引遍历该列表

List<String> lines = new ArrayList<String>();
while(reader.ready()){
  lines.add(reader.readLine());
}

for(int i = 0; i<lines.size();i++){
  if(lines.get(i).contains(string)){
    String lineMinusTwo = lines.get(i-2);
    String lineMinusOne = lines.get(i-1);
    String line = lines.get(i);
    String linePlusOne = lines.get(i+1);
    String linePlusTwo = lines.get(i+2);
  }
}
List line=new ArrayList();
while(reader.ready()){
添加(reader.readLine());
}
对于(inti=0;i如何实现一个“非常粗略”的lexer来读取行并将它们映射到HashMap中。整数是行号,字符串是整行。

处理整个文件,然后在地图上循环,当你找到一行包含关键字时,你可以根据当前行号查找你需要的前n行,以及下n行。

你可以发布一个文本文件的示例吗?还可以显示你已经做了什么吗?是一个xml文件,读起来像一个简单的文本文件。我必须提取两个标记之间的内容,本质上;)但在这个标记中,必须有一个我用以下代码找到的特定单词:BufferedReader in=new BufferedReader(new FileReader(pathFile));String line=in.readLine();while(line!=null){if(line.contains(str)){……那么我建议您使用daniel的示例,因为它只是满足您的需要。Dunno,因为关键字在文本中出现了不止一次:(谢谢!但如果我可以不计算就提取文本的行数,但只按第一个和最后一个单词搜索会更好!