2012-08-13 107 views
0

我必須從包含由兩個單詞分隔的關鍵字的文本文件中提取行。搜索包含關鍵字的兩個單詞之間的文本文件行

我已經發現只有包含關鍵字的行(與contains(string)),但我需要在這之前和之後也有一對行,也許不會計算行,但搜索的第一個和最後一個字這組線。

我該怎麼做?

+1

你可以發佈你的文本文件的例子嗎?你也可以展示你已經做了什麼? – Kostronor 2012-08-13 13:50:17

+0

是一個xml文件,可以像簡單的文本文件一樣閱讀。我必須在兩個標籤之間提取內容,本質上是);但是在這個標籤中,它必須是我用以下代碼找到的特定單詞:BufferedReader in = new BufferedReader(new FileReader(pathFile)); String line = in.readLine(); while(line!= null){ if(line.contains(str)){ .... – user1595513 2012-08-13 14:16:51

+0

然後我會建議你使用daniel的例子,因爲它只是做你需要的。 – Kostronor 2012-08-13 14:18:44

回答

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); 
    } 
} 
+0

謝謝!但如果我可以提取文本的線條而不計算它,但只有首字母和最後一個單詞搜索更好! – user1595513 2012-08-13 14:24:04

0

如何實現讀取行並將它們映射到HashMap中的「VERY ROUGH」詞法分析器。整數將是行號,字符串是整行。 處理整個文件,然後循環查看包含關鍵字的行,然後根據當前行號和接下來的n行查找需要的前n行。

相關問題