powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / split() строки со знаками препинания: как избавиться от пустых эл-тов в рез. массиве ?
4 сообщений из 4, страница 1 из 1
split() строки со знаками препинания: как избавиться от пустых эл-тов в рез. массиве ?
    #38291485
ozzmosis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Есть текст, из него надо выдернуть только слова без white space'ов и знаков препинания.
Нарыл вот такой вариант, но он не совсем удачен:
Код: java
1.
2.
3.
4.
5.
6.
7.
public static void main(String[] args) {
  String ptn="[\\p{P}\\s+]";
  String[] wrd = "\"Вы женаты,,,, гражданин майор ?\" - \'Нет еще. . .\' –- Считайте, что повезло!!".split(ptn);
  for (int i = 0; i < wrd.length; i++) {
    System.out.println(":::"+wrd[i]+":::");
  }
}

Output
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
:::::::
:::Вы:::
:::женаты:::
::::::
::::::
::::::
::::::
:::гражданин:::
:::майор:::
::::::
::::::
::::::
::::::
::::::
::::::
:::Нет:::
:::еще:::
::::::
::::::
::::::
::::::
::::::
::::::
::::::
::::::
::::::
:::Считайте:::
::::::
:::что:::
:::повезло:::

Как сделать, чтобы split() не записывал в результирующий массив пустые строки (т.е. чтобы не было '::::::') ?

PS. Что обозначает {P} в шаблоне - это какой-то квантификатор или другое ? (в доке не нашёл)
...
Рейтинг: 0 / 0
split() строки со знаками препинания: как избавиться от пустых эл-тов в рез. массиве ?
    #38291544
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ozzmosis,

Код: java
1.
2.
3.
4.
String text = "\"Вы женаты,,,, гражданин майор ?\" - \'Нет еще. . .\' –- Считайте, что повезло!!"; 
for (String word: text.replaceAll("[^\\p{Alnum}а-яА-Я]", " ").trim().replaceAll("\\s+", " ").split("\\s+")) {
	System.out.println(":::" + word + ":::");
}
...
Рейтинг: 0 / 0
split() строки со знаками препинания: как избавиться от пустых эл-тов в рез. массиве ?
    #38291547
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ozzmosisPS. Что обозначает {P} в шаблоне - это какой-то квантификатор или другое ? (в доке не нашёл) Unicode Character Properties
...
Рейтинг: 0 / 0
split() строки со знаками препинания: как избавиться от пустых эл-тов в рез. массиве ?
    #38291549
ozzmosis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Usman
Код: java
1.
2.
3.
4.
String text = "\"Вы женаты,,,, гражданин майор ?\" - \'Нет еще. . .\' –- Считайте, что повезло!!"; 
for (String word: text.replaceAll("[^\\p{Alnum}а-яА-Я]", " ").trim().replaceAll("\\s+", " ").split("\\s+")) {
	System.out.println(":::" + word + ":::");
}

Usman, спасибо за пример и ссылку.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / split() строки со знаками препинания: как избавиться от пустых эл-тов в рез. массиве ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]