例如
String splits[] = ("||").split("[|]")
System.out.println(splits.length)
返回 0。而我希望它返回 2。解决此问题的最佳方法是什么?
例如
String splits[] = ("||").split("[|]")
System.out.println(splits.length)
返回 0。而我希望它返回 2。解决此问题的最佳方法是什么?
的默认操作split()
是丢弃尾随的空字符串。由于每个结果字符串都是空的,因此不会返回任何字符串。
更准确地说,调用与将第二个参数设置为 0 的split(String)
调用相同。split(String, int)
0 表示(强调我的):
...该模式将被应用尽可能多次,数组可以有任意长度,并且尾随的空字符串将被丢弃。
如果您想保留尾随空字符串(并且不想限制元素的数量),请传入一个负值(我建议 -1):
String splits[] = "||".split("\\|", -1);
当对以分隔符结尾的字符串调用 split 时,结束分隔符将被丢弃。
例如,所有这些都是相同的:
"X|Y|Z|||".split([|]).length
"X|Y|Z||".split([|]).length
"X|Y|Z|".split([|]).length
"X|Y|Z".split([|]).length
_注意您放在|
括号中,因为|
它是正则表达式中的元字符。