Подсчитать вхождения слова в тексте

18. Подсчитать вхождения слова в тексте

Условие задачи:
Необходимо реализовать метод, который подсчитывает, сколько раз указанное слово встречается в тексте.

Слова в тексте уже очищены от знаков препинания. Сравнение выполняется с учётом регистра.

Код:

int getWordCount(String word, String text) {
    // код тут
}

Спойлеры к решению

Подсказки
💡 Раздели текст на слова с помощью split("\\s+").
💡 Преобразуй массив слов в поток через Arrays.stream().
💡 Оставь совпадающие слова с помощью filter().
💡 Для подсчёта элементов используй count().

Решение
int getWordCount(String word, String text) {
    if (word == null || word.trim().isEmpty()
            || text == null || text.trim().isEmpty()) {
        return 0;
    }

    return (int) Arrays.stream(text.trim().split("\\s+"))
            .filter(word::equals)
            .count();
}

Пример использования:

int count = getWordCount(
        "java",
        "java spring java sql java"
);

System.out.println(count);

Результат:

3

Метод разделяет текст по одному или нескольким пробельным символам, оставляет слова, равные искомому, и подсчитывает количество совпадений.

Временная сложность — O(n), где n — длина текста.