c#中的字符串替换

可能重复:
字符串替换不起作用

我喜欢这样的:

string url = "abc=$abc"; url.Replace("$abc", "123"); 

然后我的预期url =“abc = 123”。 但实际上,在运行上面的代码之后,结果仍然是“abc = $ abc”,而不是“abc = 123”。

如何解决这个问题?

你要

 url = url.Replace("$abc", "123"); 

Replace()返回一个新的string实例,完成替换操作。 它(以及所有其他字符串操作)不会更改原始字符串实例。

字符串是不可变的,这意味着您创建一个新字符串而不是更改原始字符串:

 url = url.Replace("$abc", "123"); 

字符串是不可变的,这意味着它不会发生变化。 尝试将replace的结果分配给另一个字符串变量。

 string url = "abc=$abc"; string newUrl = url.Replace("$abc", "123"); 

尝试

 url = url.Replace("$abc", "123"); 

String.Replace方法

返回一个新字符串 ,其中当前字符串中所有出现的指定Unicode字符或String将替换为另一个指定的Unicode字符或String。

您需要设置原始字符串或新字符串,等于String.Replace返回的值。 使用您的示例,执行以下操作:

 string url = "abc=$abc"; url = url.Replace("$abc", "123"); 
 url = url.Replace("$abc", "123"); 

.Replace返回一个新字符串 – 如果要更改它,必须将其分配回原始字符串。

url = url.Replace(“$ abc”,“123”);

Replace返回一个字符串。 所以你需要将你的第二个陈述改为:

 url = url.Replace("$abc", "123");