Вопрос возник при решении задачи. Я увидел один из советов использовать регулярку \\W при сплите строки . ОК. Прочитал и посмотрел регулярные выражения . \\W - это non-character символы . То есть в строке 16 я это использую и получаю результат (без кавычек): " world world wOrld wor ld world " И тут я начал тупить:) Почему осталось слово world после сплита? Ведь при таком сплите строка должна разбиться по пробелам. запятым и тд ... Подскажите пожалуйста как работает здесь сплит и где ошибка в рассуждениях. Считаем слово Считать с консоли имя файла. Файл содержит слова, разделенные знаками препинания. Вывести в консоль количество слов "world", которые встречаются в файле. Закрыть потоки. Требования: 1. Программа должна считывать имя файла с консоли (используй BufferedReader). 2. BufferedReader для считывания данных с консоли должен быть закрыт. 3. Программа должна считывать содержимое файла (используй FileReader c конструктором String). 4. Поток чтения из файла (FileReader) должен быть закрыт. 5. Программа должна выводить в консоль количество слов "world", которые встречаются в файле. Текст в моем файле : читать с консоли имя файла. Файл содержит слова, разделенные знаками препинания. Вывести в консоль количество слов "world", которые встречаются в файле. Закрыть потоки."world" "wOrld" wor ld "world" */
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 reader = new BufferedReader(new InputStreamReader(System.in));
        String fileName = reader.readLine();
        String path = "/Users/alexander.krivenko/Documents/java_Training/JavaRush/JavaRushTasks/2.JavaCore/src/com/javarush/task/task19/task1907/";
        reader = new BufferedReader(new FileReader(path + fileName));
        int count = 0;
        StringBuffer buffer = new StringBuffer();
        while (reader.ready()) {
            String a = reader.readLine();
            String[] words = a.split("(\\W)");
            for (int i = 0; i < words.length; i++) {
                System.out.print(words[i]+" ");
            }
        }

        reader.close();
    }
}