Java - разделительная строка на основе нескольких разделителей

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

Как мне достичь этого с помощью нескольких элементов для разбиения массива на?

Спасибо!

Ответ 1

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

mystring.split("[!.?:;]");

Ответ 2

Guava 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, чтобы обернуть выходные результаты, как вам нравится.

Ответ 3

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

s.split("[.!:;?]");