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

为什么Java的String.split()拆分字符串时不会保留末尾的空拆分结果?

Java String.split() 末尾空拆分结果丢失原因

你调用的String.split(String regex)是单参数重载方法,它的底层等价于执行split(regex, 0),第二个参数limit的取值直接决定了空拆分结果的保留逻辑,规则如下:

  • 当limit > 0时:拆分最多执行limit-1次,最终数组长度不超过limit,末尾的空拆分结果会完整保留
  • 当limit = 0时:拆分执行尽可能多的次数,但数组末尾所有的空拆分结果都会被丢弃,这就是你遇到的场景
  • 当limit < 0时:拆分执行尽可能多的次数,数组末尾的空拆分结果也会完整保留

另外你示例中写的Strs[0] = " "属于笔误,按你的代码拆分后对应位置的结果应该是空字符串"",不是空格字符。

如果你需要保留hello后方的空拆分结果,只需要把拆分代码修改为:

String[] strs = s.split(" ", -1);

即可得到包含末尾空串的完整拆分结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:45:04