Самый простой способ решить задачу как я понял - использовать регулярные выражения.
Погуглив, нашёл такой вариант:
.replaceAll("\\p{P}", " ").split(" ");
Заменяет все знаки припинания на пробелы, а потом всё это режет в массив по пробелу.
Дальше вроде дело за малым, пробежаться по массиву и найти совпадения, но валидатор не пускает.
Где ошибка? или лучше дайте содержимое файла, на котором можно протестить задачу.
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) {
String fileName = "";
int count = 0;
String[] strArr = null;
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
fileName = reader.readLine();
} catch (IOException e) {
System.out.println("Ошибка чтения имени файла.");
}
try (FileReader fileReader = new FileReader(fileName)) {
StringBuilder sb = new StringBuilder();
while (fileReader.ready()) {
sb.append((char) fileReader.read());
}
strArr = sb.toString().replaceAll("\\p{P}", " ").split(" ");
} catch (IOException e) {
System.out.println("Ошибка чтения файла.");
}
for (String s : strArr) {
if(s.equals("world")) count++;
}
System.out.println(count);
}
}