基本上,我需要检查一个单词在多个文件中的出现情况。
此外,一个单词可能会多次出现在一个文本文件中。
我想为每个文件保存一个单词的位置;所以我写了下面的代码:
public static void findWord(String word, File file){
try{
BufferedReader input = new BufferedReader(
new InputStreamReader(
new FileInputStream(file)));
String line;
ArrayList<Integer> list=new ArrayList<Integer>();
while((line=input.readLine())!=null){
if(line.indexOf(word)>-1){
list.add(line.indexOf(word));
}
}
System.out.println(file +": "+ list);
input.close();
}
catch(Exception ex){
ex.printStackTrace();
}
}
我的代码在第一次成功出现后无法添加到列表。所以我在每个数组中只有一个元素。
我如何解决它?
P.S 我的文本文件由一行组成
最佳答案
修复方法如下(用此替换 while 循环):
while ((line = input.readLine ()) != null)
{
int index = -1;
while ((index = line.indexOf (word, index + 1) > -1)
{
list.add (index);
}
}
关于Java:在多个文件中搜索一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8855556/