Поздравляем, вы наткнулись на одну из самых больших языковых проблем! Что такое слово? Говорят, что слово является единственным словом, которое на самом деле означает, что это такое. Целая область лингвистики посвящена словам / единицам значения - морфологии.
Я предполагаю, что ваш вопрос касается подсчета слов на английском языке. Однако создание не зависящего от языка счетчика / анализатора слов практически невозможно из-за языковых различий. Например, можно подумать, что достаточно просто обработать группы символов, разделенных пробелами. Однако, если вы посмотрите на следующий пример на японском языке, вы увидите, что этот подход не работает:
こ れ は 日本語 の 例文 で す.
Этот пример содержит 3 разных слова, и ни одно из них не разделено пробелами. Как правило, границы японских слов анализируются с использованием словарного подхода, и для этого есть ряд коммерческих библиотек. Нам повезло с пробелами на английском! Я считаю, что индийские языки, китайский и корейский также имеют похожие проблемы.
Если это решение действительно будет развернуто любым способом, при котором возможен многоязычный ввод, важно иметь возможность подключать различные методы подсчета слов в зависимости от анализируемого языка.
Я думаю, что первый ответ был хорошим, потому что он использует знания Java о значениях пробелов в Юникоде в качестве разделителей. Он токенизируется путем сопоставления с использованием следующего регулярного выражения: \p{javaWhitespace}+