我试图用简单的替换双反斜杠但它不起作用。这是一张图片:
我仍然想知道为什么。我看到像this这样的帖子,它对他们很有用。 建议?
更新
抱歉,我犯了一个错误,它的单个反斜杠只是拼错了 要替换的代码是
string clear_patch = path.Replace(@"\\","\");
答案 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(@"\","-")