java split 方法边界问题

@Test
public void testsplit(){
    String str1 = "11,22,33";
    String str2 = "11,22,33,";
    String[] array1 = str1.split(",");   //长度为3
    String[] array2 = str2.split(",");   //长度也为3

}

当split方法分割字符串后最后一个元素为 空字符串时 会自动舍去....

需要在split中添加参数-1,String[] values = line.split(",",-1);

imit 参数控制应用模式的次数,从而影响结果数组的长度 

如果限制 n 大于零,那么模式至多应用 n> - 1 次,数组的长度不大于 n,并且数组的最后条目将包含除最后的匹配定界符之外的所有输入 

如果 n 非正,那么将应用模式的次数不受限制,并且数组可以为任意长度 

如果 n 为零,那么应用模式的次数不受限制,数组可以为任意长度,并且将丢弃尾部空字符串  (就是这个原因)

添加上参数-1之后,就正常了


你可能感兴趣的:(java split 方法边界问题)