例如
String splits[] = ("||").split("[|]")
System.out.println(splits.length)
返回0.而我希望它返回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您将|
放在括号中,因为|
是正则表达式中的元字符。