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

如何逐个替换字符串指定字符,每次替换生成一个新字符串

解决方法

我们可以通过编写自定义函数,对每个字符串中的目标字符(Y/S/T)逐个单独替换,生成对应的新字符串。以下是具体实现步骤:

1. 定义输入字符串向量

input_strings <- c("YSAHEEHHYDK", "HEHISSDYAGK", "TFAHTESHISK", "ISLGEHEGGGK", 
                   "LSSGYDGTSYK", "FGTGTYAGGEK", "VGASTGYSGLK", "TASGVGGFSTK", "SYASDFGSSAK", 
                   "LYSYYSSTESK")

2. 编写单字符串替换函数

该函数会遍历字符串的每个字符,仅对当前位置的Y/S/T进行替换,生成新字符串:

generate_single_replacements <- function(s) {
  # 将字符串拆分为单个字符
  chars <- strsplit(s, "")[[1]]
  replacements <- list()
  
  # 遍历每个字符位置
  for (i in seq_along(chars)) {
    current_char <- chars[i]
    # 检查是否为目标字符
    if (current_char %in% c("Y", "S", "T")) {
      modified_chars <- chars
      modified_chars[i] <- paste0("p", current_char)
      # 合并修改后的字符为字符串并加入结果列表
      replacements <- c(replacements, paste(modified_chars, collapse = ""))
    }
  }
  
  # 将列表转为向量返回
  unlist(replacements)
}

3. 应用函数到所有输入字符串

使用lapply将函数应用到每个字符串,得到每个原字符串对应的所有单替换结果:

# 生成结果列表,每个元素对应原字符串的所有替换版本
result_list <- lapply(input_strings, generate_single_replacements)
# 为列表元素命名,方便对应原字符串
names(result_list) <- input_strings

示例输出

以原字符串"YSAHEEHHYDK"为例,运行函数后得到的结果为:

result_list[["YSAHEEHHYDK"]]
# 输出:
# [1] "pYSAHEEHHYDK" "YpSAHEEHHYDK" "YSAHEEHHpYDK"

原字符串"HEHISSDYAGK"的替换结果:

result_list[["HEHISSDYAGK"]]
# 输出:
# [1] "HEHIpSSDYAGK" "HEHISpSDYAGK" "HEHISSDpYAGK"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:45:43