Java - разделение строки на основе нескольких разделителей - PullRequest
10 голосов
/ 05 февраля 2012

Я, по сути, хочу разделить строку на основе предложений, поэтому (ради того, что я делаю), всякий раз, когда есть !, ., ?, :, ;.

Как бы я достиг этого с несколькими элементами, чтобы разделить массив?

Спасибо!

Ответы [ 4 ]

29 голосов
/ 05 февраля 2012

String.split принимает регулярное выражение для разделения, поэтому вы можете просто:

mystring.split("[!.?:;]");
7 голосов
/ 05 февраля 2012

Гуава Splitter немного более предсказуемо , чем String.split().

Iterable<String> results = Splitter.on(CharMatcher.anyOf("!.?:;"))
   .trimResults() // only if you need it
   .omitEmptyStrings() // only if you need it
   .split(string);

и затем вы можете использовать Iterables.toArray или Lists.newArrayList, чтобы обернуть результаты вывода, как вам нравится.

6 голосов
/ 05 февраля 2012

Аргументом String.split является регулярное выражение, поэтому вы можете создать шаблон, соответствующий любому из этих символов.

s.split("[.!:;?]");
4 голосов
/ 05 февраля 2012

Вы можете использовать метод String.split (String regex) с параметром "[!.?:;]".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...