使用扩展方法替换字符串

本文关键字:替换 字符串 方法 扩展 | 更新日期: 2023-09-27 17:50:52

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

I tried this

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);
}

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

使用扩展方法替换字符串

方法替换了字符,但是必须捕获结果

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

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

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