在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
相关产品推荐
相关产品推荐

