在分隔符是单词的Java中拆分字符串

Posted

技术标签:

【中文标题】在分隔符是单词的Java中拆分字符串【英文标题】:Splitting a string in java where the delimiter is a word 【发布时间】:2013-06-28 07:45:40 【问题描述】:

我有一个字符串(一本书的作者姓名列表),格式如下:

author_name1author_name2author_name3author_name4

如何解析字符串,以便将作者姓名列表作为String 的数组获取。 (在这种情况下,分隔符是, 和单词and。我不确定如何根据这些分隔符拆分字符串(因为这里的分隔符是单词而不是单个字符)。

【问题讨论】:

***.com/questions/5993779/… 【参考方案1】:

你可以使用myString.split(",|and") 它会做你想做的事:)

【讨论】:

【参考方案2】:

你应该使用正则表达式:

"someString".split("(,|and)")

【讨论】:

我认为你不需要括号,是吗? @C4stor,呵呵,其实这里没关系。我习惯使用括号。 括号不会改变代码的作用,但为了可读性,通常首选更简单的代码(即使在这种情况下只有细微的差别)。【参考方案3】:

试试:

yourString.split("\\s*(,|and)\\s*")

\\s* 表示零个或多个空格字符(因此周围的空格不包含在您的拆分中)。

(,|and) 表示,and

Test(Arrays.toString[element1, element2, ..., elementN] 的形式打印数组。

Java regex reference.

【讨论】:

【参考方案4】:

我认为您需要包含正则表达式 OR 运算符:

String[]tokens = someString.split(",|and");

【讨论】:

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

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

使用单词分隔符拆分字符串

leetcode 单词拆分 II java

Java - 正则表达式拆分输入文本但保留分隔符[重复]

使用单词列表作为分隔符的 C++ 拆分字符串

php爆炸:使用空格分隔符将字符串拆分为单词