Не могу понять, почему валидатор не принимает решение. (Проверь, почему программа находит больше слов "world" чем есть в файле.)
Я решал чуть более общую задачу, в которой слова в файле ничем не разделены.
логика такова:
Если встречается буква w - значит порядковый счетчик становится равным 1.
если встречается буква o и порядковый счетчик уже равен 1 -> значит его нужно сделать равным 2 и тд.
если мы достигли 4 - значит слово найдено и нужно увеличить счетчик слов, иначе сбросить порядковый счетчик.
Помогите, если есть идеи. Спасибо!
package com.javarush.task.task19.task1907;
/*
Считаем слово
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String file = reader.readLine();
reader.close();
FileReader fr = new FileReader(file);
int i = 0;
int cnt = 0;
while (fr.ready()){
int c = fr.read();
char ch = (char)c;
if(ch == 'w'){
i = 1;
}
else if(i == 1 && ch == 'o' ||
i == 2 && ch == 'r' ||
i == 3 && ch == 'l' ||
i == 4 && ch == 'd'){
i++;
}
else i=0;
if (i == 5){
i =0;
cnt++;
}
}
fr.close();
System.out.println(cnt);
}
}