我想分割一些使用String.split()
的字符串。带2个分隔符的Java分割字符串
我希望它根据字符分割字符串:"++"
和"+"
。例如,"1 + 1"
将被拆分为{1, +, 1}
和"1 ++ 1"
将被拆分成。我写这条线拆分文本:但它并不适用于"1 ++ 1"
工作(输出:{ 1, +, +, 1 }
):
String[] temp = tokens.split("(?<=(\\++)|(\\+))|(?=(\\++)|(\\+))");
这为"1 + 1"
({ 1, +, 1 }
输出)工作正常。我知道我可以把它转换成一个ArrayList,然后找到一个"+"
后跟一个"+"
,然后简单地将它们组合成一个令牌,但是我很好奇它是否可以用split()
来做到这一点?
你的标记之间总是有空格吗?如果是,那么'split(“\\ s +”)'会更简单。 – Pshemo 2015-02-08 19:37:40
尝试使用贪婪的量词“*”。没有测试过:(\\ +)* – ccleve 2015-02-08 19:37:48
不,我想保留它,以便它可以是1 ++ 1或1 ++ 1或1+ 1等。 – 2015-02-08 19:38:43