替换方法不起作用,C#

替换方法不起作用,C#,c#,C#,我正在用C#编写一个电话号码转换器代码,努力将电话键上的任何字母字符替换为相应的数字。在下面的代码中,变量结果已经有10个字符,这是数字和字母的混合。正如您在代码中看到的,我试着在整个开关箱中使用替换方法,但它给了我错误的结果。有什么想法吗?谢谢。 对不起,我忘了提到这个项目中不允许使用数组,只允许使用条件和重复。啊,这是控制台C# for(int i=0;i

我正在用C#编写一个电话号码转换器代码,努力将电话键上的任何字母字符替换为相应的数字。在下面的代码中,变量结果已经有10个字符,这是数字和字母的混合。正如您在代码中看到的,我试着在整个开关箱中使用替换方法,但它给了我错误的结果。有什么想法吗?谢谢。 对不起,我忘了提到这个项目中不允许使用数组,只允许使用条件和重复。啊,这是控制台C#

for(int i=0;i
字符串
是不可变的。当您这样做时

result.Replace(buffer, "9");
结果不会改变

因此,您只使用上一次迭代的替换,而不是代码所完成的所有替换的组合。这就是您分配给代码的内容

而不是

myNumber = result.Replace(buffer, "9");

甚至,如果你愿意的话

myNumber = result = result.Replace(buffer, "9");

String
是不可变的。如果

result.Replace(buffer, "9");
结果不会改变

因此,您只使用上一次迭代的替换,而不是代码所完成的所有替换的组合。这就是您分配给代码的内容

而不是

myNumber = result.Replace(buffer, "9");

甚至,如果你愿意的话

myNumber = result = result.Replace(buffer, "9");

String
是不可变的。如果

result.Replace(buffer, "9");
结果不会改变

因此,您只使用上一次迭代的替换,而不是代码所完成的所有替换的组合。这就是您分配给代码的内容

而不是

myNumber = result.Replace(buffer, "9");

甚至,如果你愿意的话

myNumber = result = result.Replace(buffer, "9");

String
是不可变的。如果

result.Replace(buffer, "9");
结果不会改变

因此,您只使用上一次迭代的替换,而不是代码所完成的所有替换的组合。这就是您分配给代码的内容

而不是

myNumber = result.Replace(buffer, "9");

甚至,如果你愿意的话

myNumber = result = result.Replace(buffer, "9");

您正在将
Replace
方法结果分配给
myNumber
,但在下一次循环迭代中,您再次将
result
作为
Replace
参数。它无法工作

那么:

private static readonly Dictionary<string, string> PhoneReplacements =
    new Dictionary<string, string>() {
        { "A", "1" }, { "B", "1" }, { "C", "1" },
        { "D", "2" }, { "E", "2" }, { "F", "2" },
        { "G", "3" }, { "H", "3" }, { "I", "3" }
        // (...)
    };

private static string GetPhoneNumber(string number)
{
    foreach(var r in PhoneReplacements)
    {
        number = number.Replace(r.Key, r.Value);
    }
    return number;
}
专用静态只读字典PhoneReplacements=
新字典(){
{“A”,“1”},{“B”,“1”},{“C”,“1”},
{“D”,“2”},{“E”,“2”},{“F”,“2”},
{“G”,“3”},{“H”,“3”},{“I”,“3”}
// (...)
};
私有静态字符串GetPhoneNumber(字符串编号)
{
foreach(PhoneReplacements中的var r)
{
编号=编号。替换(r键,r值);
}
返回号码;
}

您将
Replace
方法结果分配给
myNumber
,但在下一次循环迭代中,您将
结果
再次作为
Replace
参数。它无法工作

那么:

private static readonly Dictionary<string, string> PhoneReplacements =
    new Dictionary<string, string>() {
        { "A", "1" }, { "B", "1" }, { "C", "1" },
        { "D", "2" }, { "E", "2" }, { "F", "2" },
        { "G", "3" }, { "H", "3" }, { "I", "3" }
        // (...)
    };

private static string GetPhoneNumber(string number)
{
    foreach(var r in PhoneReplacements)
    {
        number = number.Replace(r.Key, r.Value);
    }
    return number;
}
专用静态只读字典PhoneReplacements=
新字典(){
{“A”,“1”},{“B”,“1”},{“C”,“1”},
{“D”,“2”},{“E”,“2”},{“F”,“2”},
{“G”,“3”},{“H”,“3”},{“I”,“3”}
// (...)
};
私有静态字符串GetPhoneNumber(字符串编号)
{
foreach(PhoneReplacements中的var r)
{
编号=编号。替换(r键,r值);
}
返回号码;
}

您将
Replace
方法结果分配给
myNumber
,但在下一次循环迭代中,您将
结果
再次作为
Replace
参数。它无法工作

那么:

private static readonly Dictionary<string, string> PhoneReplacements =
    new Dictionary<string, string>() {
        { "A", "1" }, { "B", "1" }, { "C", "1" },
        { "D", "2" }, { "E", "2" }, { "F", "2" },
        { "G", "3" }, { "H", "3" }, { "I", "3" }
        // (...)
    };

private static string GetPhoneNumber(string number)
{
    foreach(var r in PhoneReplacements)
    {
        number = number.Replace(r.Key, r.Value);
    }
    return number;
}
专用静态只读字典PhoneReplacements=
新字典(){
{“A”,“1”},{“B”,“1”},{“C”,“1”},
{“D”,“2”},{“E”,“2”},{“F”,“2”},
{“G”,“3”},{“H”,“3”},{“I”,“3”}
// (...)
};
私有静态字符串GetPhoneNumber(字符串编号)
{
foreach(PhoneReplacements中的var r)
{
编号=编号。替换(r键,r值);
}
返回号码;
}

您将
Replace
方法结果分配给
myNumber
,但在下一次循环迭代中,您将
结果
再次作为
Replace
参数。它无法工作

那么:

private static readonly Dictionary<string, string> PhoneReplacements =
    new Dictionary<string, string>() {
        { "A", "1" }, { "B", "1" }, { "C", "1" },
        { "D", "2" }, { "E", "2" }, { "F", "2" },
        { "G", "3" }, { "H", "3" }, { "I", "3" }
        // (...)
    };

private static string GetPhoneNumber(string number)
{
    foreach(var r in PhoneReplacements)
    {
        number = number.Replace(r.Key, r.Value);
    }
    return number;
}
专用静态只读字典PhoneReplacements=
新字典(){
{“A”,“1”},{“B”,“1”},{“C”,“1”},
{“D”,“2”},{“E”,“2”},{“F”,“2”},
{“G”,“3”},{“H”,“3”},{“I”,“3”}
// (...)
};
私有静态字符串GetPhoneNumber(字符串编号)
{
foreach(PhoneReplacements中的var r)
{
编号=编号。替换(r键,r值);
}
返回号码;
}
C