string.replace 不起作用
我有一个接受字符串的函数(基本上是一个 XML 文档)。我正在进行此更改:
if (filterXml.Contains("&"))
{
filterXml.Replace("&", "&");
}
它遇到了这种情况,但没有替换
& to &
这里出了什么问题?
I have function which accepts string (which is basically a XML doc). I am making this change:
if (filterXml.Contains("&"))
{
filterXml.Replace("&", "&");
}
It is hitting this condition but not replacing the
& to &
What is wrong here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
请记住,字符串是不可变的。因此,您必须将 Replace 方法的返回值(请注意,它返回一个 String 对象)分配回您的变量。
如果您对 String 对象进行了大量工作,请务必阅读 字符串参考页
Remember, strings are immutable. So you have to assign the return value of the Replace method (notice that it returns a String object) back to your variable.
If you're doing a lot of work with String objects, make sure to read the the String reference page
您需要保存结果:
但我建议对所有特殊 XML 字符进行编码。
You need to save the result:
but I would recommend encoding ALL special XML characters.
您甚至不需要进行包含检查。只需执行以下操作:
如果字符串中没有任何&符号,则不会发生任何变化。
You don't even need to do the Contains check. Just do the following:
If there aren't any ampersands in the string, then nothing will change.
Try -
字符串在 .net 中是不可变的,因此
replace
函数返回一个新字符串,而不是更改调用它的字符串。您可以将更改后的结果分配给包含原始字符串值的变量。Try -
Strings are immutable in .net, so the
replace
function returns a new string rather than altering the string it is called on. You are able to assign the altered result to the variable that contained your original string value.