使用扩展方法替换字符串

时间:2015-05-27 17:19:50

标签: c# .net

如果我有字符串,我想用星号替换该字符串中的最后一个字符。

我试过这个

var myString = "ABCDEFGH";
myString.ReplaceCharacter(mystring.Length - 1, 1, "*"); 

public static string ReplaceCharacter(this string str, int start, int length, string replaceWith_expression)
{
    return str.Remove(start, length).Insert(start, replaceWith_expression);
}

我尝试使用此扩展方法,但这不起作用。 为什么这不起作用?

2 个答案:

答案 0 :(得分:8)

该方法实际上是替换字符,但您必须捕获结果

myString = myString.ReplaceCharacter(myString.Length - 1, 1, "*"); 

答案 1 :(得分:2)

问题是字符串是不可变的。替换方法,子串等不会改变字符串本身。他们创建一个新的字符串并替换它。因此,要使上述代码正确,它应该是

myString = myString.ReplaceCharacter(myString.Length - 1, 1, "*");