Java - разделительная строка на основе нескольких разделителей
Я по сути хочу разбить строку на основе предложений, поэтому (ради того, что я делаю), всякий раз, когда есть !, ., ?, :, ;.
Как мне достичь этого с помощью нескольких элементов для разбиения массива на?
Спасибо!
Ответ 1
String.split использует регулярное выражение для разделения, поэтому вы можете просто:
mystring.split("[!.?:;]");
Ответ 2
GuavaSplitter немного более предсказуем , чем 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 является регулярным выражением, поэтому вы можете создать шаблон, соответствующий любому из этих символов.