java处理csv文件总是丢数据,写个极端例子验证下:
colValue=",,,,,,,,,";
String[] values = colValue.split(",");
values.length的值居然是0!
因为 Java 的 split(",") 有一个默认规则:会自动丢弃数组末尾的所有空字符串!
String[] values = colValue.split(",", -1); 这样就不出问题了。
看定义:
String[] split(String regex, int limit)
limit 三种取值规则
1. limit > 0
- 最多分割成 limit 个元素
- 不删除末尾空字符串
- 分割到数量够了就停止
2. limit = 0(默认值,就是不带参数时)
- 无限分割
- 删除末尾所有空字符串
3. limit < 0(最常用:-1)
- 无限分割
- 保留所有空字符串(包括开头、中间、结尾)
- 最真实、最完整的分割结果
学东西一定要深入