Java拆分 - 错误的长度

Pab*_*blo 4 java split

为什么我收到长度为3而不是4?我怎样才能解决这个问题以获得合适的长度?

String s="+9851452;;FERRARI;;";
String split[]=s.split("[;]");
System.out.println(split.length);
Run Code Online (Sandbox Code Playgroud)

mk.*_*mk. 8

你得到的长度是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个(可能是空白的)字符串.有关详细信息,请参阅文档.