Java使用split分割字符串时如何忽略同一行内的第二个分隔符
Java按首个逗号分割字符串的解决方案
直接调用单参数line.split(",")会将所有逗号识别为分隔符,最终得到3个元素,不符合你的需求。你可以使用split的重载方法传入limit参数控制分割次数:
代码示例
String line = "This is key, This is, value "; // limit参数设为2,代表最多执行1次分割,仅将第一个逗号作为分隔符 String[] res = line.split(",", 2);
结果验证
分割后得到的数组长度为2:
- 第一列:
res[0]输出为This is key - 第二列:
res[1]输出为This is, value
原理说明
String.split(String regex, int limit)中limit参数的作用规则:
- 当
limit>0时,最多执行limit-1次分割,数组长度不会超过limit,最后一个元素会保留剩余所有未分割的内容 - 当
limit=0时(单参数split的默认值),会尽可能多次分割,且自动丢弃末尾的空字符串 - 当
limit<0时,会尽可能多次分割,保留末尾的空字符串
如果后续需要处理更复杂的CSV场景(比如引号包裹的字段、字段内含换行等),建议直接使用成熟的CSV解析库,避免自行处理边界问题。
内容的提问来源于stack exchange,提问作者user15743714
相关产品推荐
相关产品推荐

