Объясните в чём ошибка такого способа и как сделать правильно, используя класс Pattern (если это здесь возможно). Знаю, можно сделать и проще, но хочется разобраться в теме, спасибо.
package com.javarush.task.task19.task1907;
/*
Считаем слово
*/
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
BufferedReader fileReader = new BufferedReader(new FileReader(fileName));
StringBuilder allChars = new StringBuilder();
while (fileReader.ready()) {
allChars.append(fileReader.readLine());
}
fileReader.close();
Pattern pattern = Pattern.compile("(\\b)world(\\b)");
Matcher matcher = pattern.matcher(allChars.toString());
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println(count);
}
}