-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