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

在C# .NET中如何批量替换字符串中的指定字符?

字符串替换问题修正方案

原代码存在的问题

  • 条件判断逻辑错误:类似z == "0" && z == "1"的表达式永远不成立,一个字符串无法同时等于两个不同值,导致替换规则从未触发。
  • 未累积替换结果:每次替换都基于初始字符串result,而非更新后的内容,无法完成多字符替换。
  • 冗余的索引检查:String.Replace会自动处理所有匹配项,无需提前用IndexOf查找位置。

正确实现方式

方法1:直接链式调用Replace(简单场景)

如果替换规则较少,直接用Replace链式调用即可:

string input = "CD7849O";
string result = input.Replace('7', '1').Replace('O', '0');
Console.WriteLine(result); // 输出 CD18490

方法2:用字典存储替换规则(可扩展场景)

如果需要添加更多替换规则(比如I→1、0→O等),用字典管理更清晰,且StringBuilder处理多次替换效率更高:

string input = "CD7849O";
var replaceRules = new Dictionary<char, char>
{
    {'7', '1'},
    {'O', '0'},
    // 可添加其他规则:
    // {'I', '1'},
    // {'0', 'O'}
};

StringBuilder sb = new StringBuilder(input);
foreach (var rule in replaceRules)
{
    sb.Replace(rule.Key, rule.Value);
}
string result = sb.ToString();
Console.WriteLine(result); // 输出 CD18490

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:55:15