You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

字符串按|分割时末尾空值被忽略的技术问题咨询

解决分割末尾带空值字符串时split忽略空项的问题

这个问题我之前也碰到过,本质是split方法的默认行为在搞鬼!当你调用不带第二个参数的split(regex)时,它会自动丢弃分割后末尾的所有空字符串,这就是为什么"abc|xyz|".split("\\|")只输出abc和xyz,数组长度显示为2而不是预期的3。

解决方案:使用带limit参数的split重载方法

要保留末尾的空字符串,你需要传入第二个参数limit = -1。这个参数的作用是控制分割逻辑:当limit为负数时,split会执行尽可能多的分割,并且保留所有的空字符串(包括末尾的)。

举个Kotlin代码的例子:

// 保留末尾空值的分割执行代码
"abc|xyz|".split("\\|", -1).forEach(::println)
// 输出结果:
// abc
// xyz
// (这里会输出一个空行,对应末尾的空字符串)

// 查看数组长度
println("abc|xyz|".split("\\|", -1).size)
// 输出:3

补充说明split的limit参数规则

  • 当limit = 0(默认行为):分割尽可能多次,丢弃末尾所有空字符串
  • 当limit > 0:最多执行limit-1次分割,数组长度不超过limit
  • 当limit < 0:分割尽可能多次,保留所有空字符串(包括末尾的)

内容的提问来源于stack exchange,提问作者sairam chowdary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:55:44