我必須從包含由兩個單詞分隔的關鍵字的文本文件中提取行。搜索包含關鍵字的兩個單詞之間的文本文件行
我已經發現只有包含關鍵字的行(與contains(string)
),但我需要在這之前和之後也有一對行,也許不會計算行,但搜索的第一個和最後一個字這組線。
我該怎麼做?
我必須從包含由兩個單詞分隔的關鍵字的文本文件中提取行。搜索包含關鍵字的兩個單詞之間的文本文件行
我已經發現只有包含關鍵字的行(與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);
}
}
謝謝!但如果我可以提取文本的線條而不計算它,但只有首字母和最後一個單詞搜索更好! – user1595513 2012-08-13 14:24:04
如何實現讀取行並將它們映射到HashMap中的「VERY ROUGH」詞法分析器。整數將是行號,字符串是整行。 處理整個文件,然後循環查看包含關鍵字的行,然後根據當前行號和接下來的n行查找需要的前n行。
你可以發佈你的文本文件的例子嗎?你也可以展示你已經做了什麼? – Kostronor 2012-08-13 13:50:17
是一個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
然後我會建議你使用daniel的例子,因爲它只是做你需要的。 – Kostronor 2012-08-13 14:18:44