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 — длина текста.