C# - 处理string.replace中的矛盾

BvG*_*BvG 3 c# string replace

我开始使用C#和编程一般而且我一直在玩"if"语句,数组并且通常会掌握一些东西.然而,让我感到困惑的一件事就是如何进行本质上相互矛盾的替换操作.

IE:我有字符串"AAABBB",但我想搜索我的文本并将所有"A"替换为"B",反之亦然.所以我的预期输出将是"BBBAAA".

我目前正在尝试使用string.replace和if语句,但它不起作用(它遵循语句的顺序,所以在上面的例子中我得到所有"A"或全部"B".

代码示例:

if (string.Contains("a"));
{
    string = string.Replace("a", "b");
}

if (string.Contains("b"));
{
    string = string.Replace("b", "a");
}
Run Code Online (Sandbox Code Playgroud)

任何帮助都会非常受欢迎!

Jon*_*eet 10

如果你总是用另一个角色替换一个角色,那么最简单的方法就是将它转换成char[]一个角色,一次一个角色,然后适当地修复每个角色 - 而不是做"全部为",然后是"所有的B".

public static string PerformReplacements(string text)
{
    char[] chars = text.ToCharArray();
    for (int i = 0; i < chars.Length; i++)
    {
        switch (chars[i])
        {
            case 'A':
                chars[i] = 'B';
                break;
            case 'B':
                chars[i] = 'A';
                break;
        }
    }
    return new string(chars);
}
Run Code Online (Sandbox Code Playgroud)

  • 亲爱的日记,今天Jon Skeet感谢我.我的C#技能现在更强了. (4认同)