2017-09-05 73 views
-3

我有以下代码:替换( “” “ ”\“ ”)获取的价值\“,而不是\”

string a = "\""; 
string b = a.Replace("\"", "\\\""); 

我想在B地与实例\\"值。相反,当执行替换时,b具有\\\"值。

为什么会发生这种情况?无论如何,取代\"值,并得到\\"而不是\\\"值?

谢谢

+6

它可能是...确定你看到的不是视觉工作室调试器的洞察力/数据提示,它也显示转义版本? – dlatikay

+0

您如何检查'b'的价值?此外,可能有更适合的方法来转义您的字符串,而不是您在此尝试执行的任何操作。 –

+0

你会被越过反斜杠。 – Stuart

回答

0

像@dlatikay说上的评论,因为我看到在Visual Studio debbuger,调试器再次逃脱字符串转化\\"价值为\\\"值。

2

您需要添加2条斜线,如果你想与\\"

你的现有代码\\\"替换它进行初始化。这意味着一个\\被计算为一个反斜杠,并且\"被转义了双引号。所以,b变成\"。如果你使用\\\\\"。你会得到2个反斜杠和一个双引号。

string a = "\""; 
    string b = a.Replace("\"", "\\\\\"");