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

在Kotlin中如何实现在每n个字符之后插入一个char字符?

每n个字符后插入指定字符的实现方案

核心实现逻辑

  • 将原始字符串按间隔n切分为若干个长度不超过n的子串
  • 以需要插入的指定字符作为连接符,拼接所有子串即可完成需求

各常见语言实现示例

Python

def insert_char_every_n(raw_str: str, step: int, insert_char: str) -> str:
    if step <= 0 or len(raw_str) <= step:
        return raw_str
    split_parts = [raw_str[i:i+step] for i in range(0, len(raw_str), step)]
    return insert_char.join(split_parts)

调用示例:insert_char_every_n("abcdefghij", 3, "-") 输出结果为 abc-def-ghi-j

JavaScript

function insertCharEveryN(rawStr, step, insertChar) {
    if (step <= 0 || rawStr.length <= step) return rawStr
    const splitParts = []
    for(let i = 0; i < rawStr.length; i += step) {
        splitParts.push(rawStr.slice(i, i + step))
    }
    return splitParts.join(insertChar)
}

调用示例:insertCharEveryN("abcdefghij", 3, "-") 返回结果为 "abc-def-ghi-j"

Java

public class StringInsertUtil {
    public static String insertCharEveryN(String rawStr, int step, char insertChar) {
        if (step <= 0 || rawStr.length() <= step) {
            return rawStr;
        }
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < rawStr.length(); i++) {
            sb.append(rawStr.charAt(i));
            // 仅在每n个字符后插入,且避免末尾多插字符
            if ((i + 1) % step == 0 && i != rawStr.length() - 1) {
                sb.append(insertChar);
            }
        }
        return sb.toString();
    }
}

调用示例:StringInsertUtil.insertCharEveryN("abcdefghij", 3, '-') 输出结果为 "abc-def-ghi-j"

边界情况处理说明

  • 当间隔n小于等于0时,直接返回原字符串,避免出现死循环或逻辑错误
  • 当原始字符串长度小于等于间隔n时,无需插入操作直接返回原字符串
  • 所有实现均自动规避了字符串末尾额外插入多余指定字符的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:24:04