String类的split方法不包括尾随空字符串

gam*_*ver 9 java regex

可能重复:
Java split()方法在结尾处删除空字符串?

String类的split方法不包括它返回的数组中的尾随空字符串.我如何克服这个限制:

class TestRegex{
 public static void main(String...args){
  String s = "a:b:c:";    
  String [] pieces = s.split(":");

  System.out.println(pieces.length); // prints 3...I want 4.
 }
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 19

根据文件:

此方法的工作方式就像调用带有给定表达式和limit参数为零的双参数split方法一样.

对于带有limit参数的拆分,它说:

如果n是非正数,那么模式将被应用尽可能多的次数,并且数组可以具有任何长度.如果n为零,那么模式将被应用尽可能多的次数,数组可以具有任何长度,并且将丢弃尾随的空字符串.

因此,尝试使用非正限制参数调用split方法,如下所示:

String[] pieces = s.split(":", -1);
Run Code Online (Sandbox Code Playgroud)