String.Replace不替换撇号

时间:2013-01-21 16:06:34

标签: c# string replace

我正在尝试用字符串替换撇号,由于某种原因,该方法只是在字符串中找不到撇号。这是一个似乎不起作用的URL:

"/news/2012/march/cameron’s-crackdown-on-whiplash-–-why-the-minimum-speed-requirement-is-oddly-suspicious"
.Replace("'", "'");

有没有人有任何想法?

6 个答案:

答案 0 :(得分:9)

替换不起作用,因为'不是同一个字符。

也许你忘了捕捉结果,你的代码太短了,无法说出来。

答案 1 :(得分:5)

'是不同的字符。您还需要将其分配到某处(字符串是不可变的),Replace()返回新的字符串:

myString = myString.Replace("’", "'");

答案 2 :(得分:3)

由于字符串是不可变的,因此您需要将结果分配回另一个字符串。

string original = "/news/2012/march/cameron’s-crackdown-on-whiplash-–-why-the-minimum-speed-requirement-is-oddly-suspicious";
string updated = original.Replace("’","'");

(还要注意`和'不一样)

答案 3 :(得分:3)

字符串是不可变类型。你无法改变它们。即使您认为自己更改了它们,也 创建新的字符串对象 。顺便提一下,String.Replace()方法也会返回一个新字符串。

尝试使用"’"而不是"'"来分配新的字符串参考。

string str = "/news/2012/march/cameron’s-crackdown-on-whiplash-–-why-the-minimum-speed-requirement-is-oddly-suspicious".Replace("’", "'");

答案 4 :(得分:1)

您正在替换'而不是。还要记住字符串是不可变的,因此如果要存储它,必须将结果分配给新变量。

答案 5 :(得分:0)

只需将结果分配给变量

var str = "...".Replace("'", "'");