Java: Поиск слова в нескольких файлах
Вопрос
По сути, мне нужно проверить на наличие слов в нескольких файлах.
Кроме того, слово может существовать в одном текстовом файле несколько раз.
Я хочу сохранить позиции слова для каждого файла; Итак, я написал код ниже:
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();
}
}
Мой код не может добавить в список после первого успешного происшествия. Так что у меня есть только один элемент в каждом массиве.
Как это исправить?
PS мои текстовые файлы состоит из одной строки
Решение
Вот исправление (замените свою петлю на то, что на это):
while ((line = input.readLine ()) != null)
{
int index = -1;
while ((index = line.indexOf (word, index + 1) > -1)
{
list.add (index);
}
}
Не связан с StackOverflow