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

如何在string中添加char,将"cdfrcs"转为每个字符前加星号的格式?

字符串字符前批量插星号实现方案

需求本质

现有原始字符串"cdfrcs",需要生成目标格式*c*d*f*r*c*s,核心规则为:原字符串的每一个字符前缀都添加星号*,无额外首尾字符截断要求。

通用实现逻辑

不需要逐位置硬编码替换,通用思路分为两类,代码量和性能都更优:

  • 利用字符串拆分拼接逻辑:把原字符串拆分为单字符序列,用*作为连接符拼接所有单字符,最后在整个拼接结果的最前面补一个*,即可得到目标格式。这种方式完全不需要手动循环遍历判断位置,依托语言内置的字符串处理方法实现,性能最优。
  • 逐字符遍历拼接:遍历原字符串的每一个字符,依次把*和当前字符拼接到结果变量上,最终得到的字符串也符合要求,适合需要在拼接逻辑里加额外判断的场景。

不同技术栈的具体实现示例

  • Python 实现:
    直接调用内置字符串方法,无手动循环开销:
    origin_str = "cdfrcs"
    target_str = "*" + "*".join(origin_str)
    # 输出结果为 *c*d*f*r*c*s
    
  • JavaScript 实现:
    借助split拆分、join拼接的能力:
    const originStr = "cdfrcs";
    const targetStr = "*" + originStr.split("").join("*");
    // 输出结果为 *c*d*f*r*c*s
    
  • Java 实现:
    借助JDK内置的String.join工具类实现:
    String originStr = "cdfrcs";
    String targetStr = "*" + String.join("*", originStr.split(""));
    // 输出结果为 *c*d*f*r*c*s
    

常见避坑提示

  • 不要在字符串不可变的语言(如Java 8及更早版本)中,通过普通字符串变量+逐次拼接的方式生成结果,这类写法会在内存中生成大量临时字符串对象,长字符串场景下性能损耗明显,优先用语言提供的字符串拼接工具类实现。
  • 如果用正则替换的方式实现,注意替换规则要匹配每一个字符的前缀位置,不要漏掉开头第一个字符前的星号,否则结果会和预期存在偏差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 21:45:08