替换方法c#未按预期工作

时间:2013-04-04 14:01:36

标签: c# asp.net-mvc-4

我试图用简单的替换双反斜杠但它不起作用。这是一张图片:

enter image description here

我仍然想知道为什么。我看到像this这样的帖子,它对他们很有用。 建议?

更新

抱歉,我犯了一个错误,它的单个反斜杠只是拼错了 要替换的代码是

string clear_patch = path.Replace(@"\\","\");

5 个答案:

答案 0 :(得分:10)

它正在发挥作用。在调试期间检查时,\\未被转义。尝试将值打印到控制台窗口或网页。

编辑*您似乎感到困惑。

您的路径实际上并不包含任何双斜杠\\,它只是看起来那样,因为在调试期间查看字符串时会转义单斜杠。考虑阅读Escape sequences

如果您想要转义单个斜杠,请不要在替换中使用逐字字符串文字,例如string.Replace("\\", "-")用连字符-替换路径中的所有单斜线,但我不确定你为什么要这样做?请注意,在调试期间检查时,这仍将显示路径中包含\\斜杠。打印到控制台窗口将显示:

C:-dev-vsprojects-VerificaionDeFirmas-VerificaionDeFirmas-verificaciondefirmas.txt

答案 1 :(得分:3)

观察窗口显示转义的字符串。因此,当它显示\\时,字符串只包含\

您的替换正在尝试替换\\,因为您使用的是文字指示符@

将替换代码更改为:

string clear_path = path.Replace("\\", "-");

答案 2 :(得分:1)

使用"\\",而非@"\\",因为它会查找2个\个字符。

请注意,可视化工具始终会显示\\实际字符的\表示法。

答案 3 :(得分:1)

这是你想要做的:

string clear_path = path.Replace(@"\","-");

调试器中的表示显示\\但这意味着转义字符\

答案 4 :(得分:0)

你不应该双击它,你要这样做:

string clear_path = path.Replace("\\","-")

string clear_path = path.Replace(@"\","-")