Считает все верно, каких то ситуаций, когда не посчитал еще один world я придумать больше не смог.
Что не нравится валидатору?
package com.javarush.task.task19.task1907;
/*
Считаем слово
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader readerConsole = new BufferedReader(new InputStreamReader(System.in));
FileReader reader = new FileReader(readerConsole.readLine());
BufferedReader readerFile = new BufferedReader(reader);
int i = 0;
String[] strArray = readerFile.readLine().split("\\s*?(\\.|,|!|\\?| :| ;)\\s*");
for (String s1 : strArray) {
if(s1.matches("(.*)world(.*)")) i++;
}
System.out.println(i);
reader.close();
readerConsole.close();
readerFile.close();
// | (.*)World(.*)
//.split(" \\s*( \\.|,|!|\\?| :| ;)\\s* ");
}
}