我有一个字符串||81|||01||,我想用|符号分割字符串.
我这样做了,
String str = "||81|||01||";
System.out.println(str .split("\\|").length); //printing 6 . But I am expecting 8
Run Code Online (Sandbox Code Playgroud)
这段代码有什么问题?| 如何将该字符串与该字符分开,以便获得预期的length(8)?
Mar*_*der 11
使用与limit split("\\|")相同split("\\|", 0),其中limit参数0告诉函数"省略尾随空字符串".所以你错过了最后两个空字符串.使用双参数版本并提供负数以获取所有部分(甚至尾随空部分):
str.split("\\|", -1)
Run Code Online (Sandbox Code Playgroud)
打印:
System.out.println(Arrays.toString(str.split("\\|")));
你会明白它为什么要打印6.
您可以尝试使用public String [] split(String regex,int limit)执行您想要的操作:
limit参数控制模式的应用次数,因此会影响结果数组的长度.
所以你应该这样做:
System.out.println(str.split("\\|", -1).length);
Run Code Online (Sandbox Code Playgroud)
现在,打印数组将打印:
[, , 81, , , 01, , ] 如你所料.