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

Java中String.split()丢失最后元素问题咨询及期望结果确认

Java String.split() 保留末尾空元素的解决办法

你的理解完全正确,当原字符串以分隔符结尾时,默认的split调用会丢掉末尾的空元素,你想要的包含末尾空串的结果是合理的。

问题根源

Java 里String.split(String regex)默认等价于split(regex, 0),第二个参数limit设为0时,会自动丢弃分割结果末尾的所有空字符串。要是想保留这些空元素,把limit改成负数就行(通常用-1),这时候所有分割出来的元素都会被保留,包括末尾的空串。

修改后的代码

import java.util.Arrays;
import java.util.Objects;
import java.util.List;

public static List<String> splitString(String source, String delimiter) {
    if (Objects.equals(delimiter, "[")) {
        // "["是正则元字符需要转义,同时设置limit为-1保留末尾空元素
        return Arrays.asList(source.split("\\[", -1));
    }
    // 普通分隔符同样添加-1参数
    String[] sArr = source.split(delimiter, -1);
    return Arrays.asList(sArr);
}

验证示例

比如输入字符串是"[xtrue["(以分隔符"["结尾),调用splitString("[xtrue[", "[")会得到["", "xtrue", ""];如果你的目标结果是["[", "xtrue", ""],只需对应调整原字符串和分隔符即可,核心逻辑都是通过split(delimiter, -1)保留末尾空元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:54:19