string.split如何仅使用分隔符计算字符串?

时间:2012-06-06 05:51:32

标签: java

例如

String splits[] = ("||").split("[|]") 

System.out.println(splits.length)返回0.而我希望它返回2.什么是解决此问题的最佳方法?

2 个答案:

答案 0 :(得分:6)

split()的默认操作是丢弃尾随的空字符串。由于每个结果字符串都是空的,因此不会返回任何字符串。

更确切地说,调用split(String)与调用split(String, int)并将第二个参数设置为0相同。

0表示(强调我的):

  

...模式将被应用尽可能多次,数组可以有任何长度,尾随空字符串将被丢弃。

如果你想保持尾随空字符串(并且不想限制元素的数量),那么传入一个负值(我建议-1):

String splits[] = "||".split("\\|", -1);

答案 1 :(得分:0)

在以分隔符结尾的字符串上调用split时,结尾的分隔符将被丢弃。

例如,所有这些都是相同的:

"X|Y|Z|||".split([|]).length
"X|Y|Z||".split([|]).length
"X|Y|Z|".split([|]).length
"X|Y|Z".split([|]).length

_note您将|放在括号中,因为|是正则表达式中的元字符。