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 (строка регулярного выражения) метод с параметром "[!.?:;]"
.