String abc = "a,b,c,d,,,";
String[] arr = abc.split(",");
System.out.println(arr.length);
Run Code Online (Sandbox Code Playgroud)
输出是4.但显然我的期望是7.这是我的解决方案:
String abc = "a,b,c,d,,,";
abc += "\n";
String[] arr = abc.split(",");
System.out.println(arr.length);
Run Code Online (Sandbox Code Playgroud)
为什么会这样?有谁可以给我一个更好的解决方案?
使用替代版本的String#split()两个参数来实现这一目标:
String abc = "a,b,c,d,,,";
String[] arr = abc.split(",", -1);
System.out.println(arr.length);
Run Code Online (Sandbox Code Playgroud)
这打印
7
Run Code Online (Sandbox Code Playgroud)
从上面链接的Javadoc:
如果n是非正数,那么模式将被应用尽可能多的次数,并且数组可以具有任何长度.如果n为零,那么模式将被应用尽可能多的次数,数组可以具有任何长度,并且将丢弃尾随的空字符串.
| 归档时间: |
|
| 查看次数: |
1596 次 |
| 最近记录: |