为什么我收到长度为3而不是4?我怎样才能解决这个问题以获得合适的长度?
String s="+9851452;;FERRARI;;";
String split[]=s.split("[;]");
System.out.println(split.length);
Run Code Online (Sandbox Code Playgroud)
你得到的长度是3,因为split,
此方法的工作方式就像调用带有给定表达式和limit参数为零的双参数split方法一样.因此,结尾的空字符串不包含在结果数组中.
如果您指定负限制,它将正常工作:
String s="+9851452;;FERRARI;;";
String split[]=s.split(";", -1);
System.out.println(Arrays.toString(split));
Run Code Online (Sandbox Code Playgroud)
您只需要忽略或删除第5个项目,或删除尾部;- 它会显示,因为4个令牌的任意一侧有5个(可能是空白的)字符串.有关详细信息,请参阅文档.