-1
A
回答
0
請使用下面的代碼。
List<String> previousWords = new ArrayList<String>();
List<String> nextWords = new ArrayList<String>();
boolean foundKeyWord = false;
Scanner sc2 = null;
try {
sc2 = new Scanner(new File("translate.txt"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
while (sc2.hasNextLine()) {
Scanner s2 = new Scanner(sc2.nextLine());
boolean b;
while (b = s2.hasNext()) {
String s = s2.next();
if(!foundKeyWord) {
if(s.equals(findKeyWord)) {
foundKeyWord = true;
}
}
//Keyword not found then add to the previouswords list
if(!foundKeyWord) {
previousWords.add(s);
} else {
//already key found now we need to add next 50 words
if(nextWords.size <= 50) {
nextWords.add(s);
} else {
//if 50 key words are added then break from the loop, if in case if there are less than 50 words in file after keyword then scanner will end.
break;
}
}
}
}
//Now we need to fix the previous 50 key words in case if keyword is found after 50th word.
if(previousWords.size > 50){
previousWords.subList(previousWords.size() - 50, previousWords.size());
}
1
你仍然需要逐行逐字閱讀文件以找到你正在尋找的單詞...你可以做的是讓一個緩衝區保存50個字,就像一個字符串數組,然後,加載你的文本,如果它不是你正在尋找的單詞,把它放到緩衝區中,用新單詞覆蓋最老的單詞。如果你找到你需要的,從你的緩衝區中獲得所有的單詞,並閱讀下一個50.
+0
我認爲可以。但是這個操作可能會很慢。因爲在讀取每個單詞時總是必須更新緩衝區數組。 – jacop41 2012-04-11 07:41:44
相關問題
- 1. 從文件夾中讀取文件的順序
- 2. vb.net從文件夾中讀取所有文件的順序
- 3. 從文本文件中讀取向量
- 4. 以相反的順序讀取文本文件,但從首先入口
- 5. 從文檔中讀取plist
- 6. 從文檔庫sharepoint讀取xsl文件
- 7. 從TFS文檔讀取文件
- 8. Java從文本文件中讀取值
- 9. java-lotto從文本文件中讀取
- 10. 從文本文件中讀取(Java)
- 11. Java從文本文件中讀取
- 12. Byte by Byte反向文件讀取
- 13. lib讀取java文檔
- 14. 如何在TCL中從頭開始讀取文件(以相反順序)?
- 15. 如何以相反的順序讀取PS文件?
- 16. 從java讀取xml文件
- 17. 從Java Servlet讀取文件
- 18. 從文件中讀取的C++反向波蘭表示法
- 19. 從linux中的目錄中讀取文件的順序
- 20. 使用os.listdir讀取文件的順序?
- 21. 按照MULE的順序讀取文件
- 22. 從文件中讀取條件java
- 23. 要按順序讀取文件夾中的所有文件
- 24. 按文件名中的數字順序讀取文件
- 25. 從文件中讀取多維向量
- 26. 從文件中讀取Java中
- 27. 反向讀取文本文件中的c
- 28. 從文本文件讀取的Java
- 29. 從目錄中讀取文件並從Java中過濾文件
- 30. 如何從mongoDB中讀取文檔並通過java中的websockets發送文檔?
我不知道你是否嘗試過任何東西! – vikiiii 2012-04-11 07:24:53
有很多方法,首先嚐試自己,然後發佈問題,如果出現問題。 – 2012-04-11 07:28:33