Валидатор - редиска. Моё решение работает в 15 раз быстрее эталонного, а он его не принимает по пятому пункту...
StringBuilder sb = new StringBuilder();
                int data=-1;
                while ((data = fileReader.read())!=-1){
                    sb.append((char)data);
}
String needWord = "world";
                int index;
                int count = 0;
                for (int i = 0; i!=-1+needWord.length(); i=index+needWord.length()) {
                index = sb.indexOf(needWord,i);
                if (index!=-1) count++;
            }
                System.out.println(count);
Проверь, говорит, почему находит больше... бла-бла-бла. Моё решение универсальнее и намного быстрее, но увы... Может кто найдёт в нём ошибку? Я тестил долго и нудно - работает как часы.