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

que*_*sam 2 java

例如

String splits[] = ("||").split("[|]") 
Run Code Online (Sandbox Code Playgroud)

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

Joa*_*uer 6

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

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

0意味着(强调我的):

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

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

String splits[] = "||".split("\\|", -1);
Run Code Online (Sandbox Code Playgroud)