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

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

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

спасибо!

4 ответов


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

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

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


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

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

можно использовать строку.split (строка регулярного выражения) метод с параметром "[!.?:;]".