Java - 基于多个分隔符拆分字符串

Posted

技术标签:

【中文标题】Java - 基于多个分隔符拆分字符串【英文标题】:Java - Splitting String based on multiple delimiters 【发布时间】:2012-02-27 07:49:50 【问题描述】:

我基本上想根据句子拆分一个字符串,因此(为了我正在做的事情),只要有!.?:、@ 987654325@.

如何使用多个项目来拆分数组?

谢谢!

【问题讨论】:

【参考方案1】:

String.split 采用正则表达式进行拆分,因此您可以简单地:

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

【讨论】:

【参考方案2】:

Guava's SplitterString.split() 有点more predictable。

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

然后你可以使用Iterables.toArrayLists.newArrayList 来包装你喜欢的输出结果。

【讨论】:

【参考方案3】:

String.split 的参数是一个正则表达式,因此您可以创建一个匹配任何这些字符的模式。

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

【讨论】:

【参考方案4】:

您可以使用带有参数"[!.?:;]" 的String.split(String regex) 方法。

【讨论】:

以上是关于Java - 基于多个分隔符拆分字符串的主要内容,如果未能解决你的问题,请参考以下文章

根据多个分隔符拆分字符串

如何基于多个空格字符将文本文件拆分为 2 列作为 scala spark 的分隔符

如何使用分隔符数组在 Java 中使用多个分隔符拆分字符串? [复制]

在Java中拆分多个分隔符[关闭]

如何拆分()关于多个分隔符的字符串? [复制]

将字符串拆分为具有多个分隔符的多个字符串而不删除?