难缠的code——java中关于分割字符串的几个坑

时间:2021-03-14 15:26:35

字符串的split方法使用的时候要小心,不然出了bug很难找到。

最近项目中要解析一个csv文件,代码逻辑都没问题,最后测试的时候报越界异常,抓耳饶腮,百思不得其解。一步步调试发现,读取文件没问题,在字符串分割的时候,分割完后就少了一些值。

难缠的code——java中关于分割字符串的几个坑

找到问题所在,于是翻看api:

public String[] split(String regex, int limit)
简单来说就是:当n大于0时,会分割 n-1次;
 
       当n小于0时,会分割多次
       当n等于0时,会分割多次,但是最后的空字符串会被丢弃
       看到丢弃,我就明白了,平时用都没有给第二个参数,那么默认是0,后面的空串被丢弃导致。