Вопрос

По сути, мне нужно проверить на наличие слов в нескольких файлах.
Кроме того, слово может существовать в одном текстовом файле несколько раз.
Я хочу сохранить позиции слова для каждого файла; Итак, я написал код ниже:

    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);
    }
}

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top