Java: поиск слова в нескольких файлах - PullRequest
0 голосов
/ 13 января 2012

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

    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 Мои текстовые файлы состоят из одной строки

1 Ответ

3 голосов
/ 13 января 2012

Здесь идет исправление (замените цикл while на это): while ((line = input.readLine ()) != null) { int index = -1; while ((index = line.indexOf (word, index + 1) > -1) { list.add (index); } }

...