Подсчет слов до первой запятой в тексте на Java

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

Код:

package lab4;

public class Main {

    public static void main(String[] args) {
        String txt = "Текст — зафиксированная на каком-либо материальном носителе человеческая мысль;\r\n"
                + "в общем плане связная и полная последовательность символов. В лингвистике термин\r\n"
                + "«текст» используется в более широком значении, включая также образцы устной речи.\r\n"
                + "Равным образом, текст с определённой спецификой может быть музыкальным, живописным и поэтическим.\r\n"
                + "В теории существуют две основные трактовки понятия «текст»: имманентная\r\n"
                + "(расширенная, философски нагруженная) и репрезентативная (более частная).\r\n"
                + "Имманентный подход подразумевает отношение к тексту как к автономной\r\n"
                + "реальности, нацеленность на выявление его внутренней структуры.\r\n"
                + "Репрезентативный — рассматривает тексты исключительно внутри окружающего их контекста реальности,\r\n"
                + "как особую форму воплощения знаний о внешней тексту действительности.";
    String[] words = txt.split(" ");
    System.out.println(words.length);
    for (String sl:words)System.out.println(sl);
    }

}

Ответы (1 шт):

Автор решения: Nowhere Man

Достаточно взять подстроку до первого вхождения нужного символа, и разбивать на слова с учётом пробелов, знаков пунктуации, и тире:

String[] words = (txt.indexOf(",") < 0 ? txt : txt.substring(0, txt.indexOf(",")))
        .split("[\\s\\p{Punct}—]+");

Будет выведено 26 первых слов из указанного текста.

→ Ссылка