字符串的split方法使用的时候要小心,不然出了bug很难找到。
最近项目中要解析一个csv文件,代码逻辑都没问题,最后测试的时候报越界异常,抓耳饶腮,百思不得其解。一步步调试发现,读取文件没问题,在字符串分割的时候,分割完后就少了一些值。
找到问题所在,于是翻看api:
public String[] split(String regex, int limit)
简单来说就是:当n大于0时,会分割 n-1次;
当n小于0时,会分割多次
当n等于0时,会分割多次,但是最后的空字符串会被丢弃
看到丢弃,我就明白了,平时用都没有给第二个参数,那么默认是0,后面的空串被丢弃导致。