0

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

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

我怎么能这样做?

4

2 回答 2

1

您可以在第一步中将这些行存储在 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);
  }
}
于 2012-08-13T13:56:10.823 回答
0

如何实现一个“非常粗糙”的词法分析器来读取这些行并将它们映射到一个 HashMap 中。整数是行号,字符串是整行。处理整个文件,然后在找到具有关键字的行时循环遍历映射,您可以根据当前行号和下 n 行查找所需的前 n 行。

于 2012-08-13T13:56:47.007 回答