Подсчет слов до первой запятой в тексте на 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 первых слов из указанного текста.