Java处理csv文件总是丢数据

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)

  • 无限分割
  • 保留所有空字符串(包括开头、中间、结尾)
  • 最真实、最完整的分割结果

学东西一定要深入

相关推荐
aqi001 分钟前
15天学会AI应用开发(十六)LangChain实现对话记忆功能
人工智能·python·大模型·ai编程·ai应用
卷无止境8 分钟前
Python的collections模块:那些被低估的"瑞士军刀"
后端·python
心平气和量大福大10 分钟前
C#-WPF-UserControl-生命周期(加载 退出)
开发语言·c#·wpf
卷无止境13 分钟前
Python的方法解析顺序:一场关于继承顺序的精妙设计
后端·python
小龙报15 分钟前
【优选算法】1. 水果成蓝 2.找到字符串中所有字母的异位词
java·c语言·数据结构·数据库·c++·redis·算法
sunywz23 分钟前
【c#】 Web Deploy一键发布,IIS部署全流程
开发语言·前端·c#
小柯南敲键盘35 分钟前
跨马翻译:批量图片与视频字幕翻译,支持智能抠图
大数据·人工智能·python·音视频
自强的小白36 分钟前
重点!起始时间和结束时间与创建时间和修改时间的区别(localdate与LocaldateTIME区别)以及增删改查什么时候设置目前时间(添加和更新员工时)
java
Brilliantwxx43 分钟前
【Linux】 软件包管理器(yum)+ Vim使用
linux·运维·服务器·开发语言·编辑器·vim
雪的季节1 小时前
Python 线程同步与异步编程 全解析
java·开发语言