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

如何实现字符串指定索引区间内的子串替换功能

解决方案:按索引区间替换字符串子串

这事儿其实很直观,核心就是把原字符串拆成三个部分:起始索引之前的内容 + 替换字符串 + 结束索引之后的内容,然后拼接起来就行。我给你用两种常用语言写个实现例子,你一看就懂。

Python 实现

先写一个封装好的函数,还加了简单的索引合法性检查,避免出错:

def replace_substring_by_indices(original_str, start_idx, end_idx, replace_str):
    # 检查索引是否合法:不能小于0,结束索引不能超出字符串长度,且起始不能大于结束
    if start_idx < 0 or end_idx >= len(original_str) or start_idx > end_idx:
        raise ValueError("起始或结束索引不合法,请检查输入")
    # 拼接新字符串
    return original_str[:start_idx] + replace_str + original_str[end_idx+1:]

测试你的例子

第一个测试:

original = "elephant"
result = replace_substring_by_indices(original, 2, 5, "tiger")
print(result)  # 输出:eltigernt

第二个测试:

original = "elephant elephant tiger"
result = replace_substring_by_indices(original, 2, 5, "tiger")
print(result)  # 输出:eltigernt elephant tiger

JavaScript 实现

如果用JS的话,逻辑完全一样,只是字符串截取的方法稍有不同:

function replaceSubstringByIndices(originalStr, startIdx, endIdx, replaceStr) {
    if (startIdx < 0 || endIdx >= originalStr.length || startIdx > endIdx) {
        throw new Error("起始或结束索引不合法,请检查输入");
    }
    return originalStr.slice(0, startIdx) + replaceStr + originalStr.slice(endIdx + 1);
}

测试例子

let original = "elephant";
let result = replaceSubstringByIndices(original, 2, 5, "tiger");
console.log(result); // 输出:eltigernt

这个逻辑的关键是:不管替换字符串的长度和原子串的长度是否一致,都能正确替换——比如你例子里原子串是4个字符,替换成5个字符的"tiger",拼接后自然就把中间部分替换掉了,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:53:46