我有一个字符串:
var path = "d:\\project\\Bloomberg\\trunk\\UI.Demo\\";
Run Code Online (Sandbox Code Playgroud)
我想替换\\到\.
我试过这个:
path = path.Replace("\\\\", "\\");
path = path.Replace(@"\\", @"\");
Run Code Online (Sandbox Code Playgroud)
这些都不会用单反斜杠替换双反斜杠.
Bot*_*000 10
在path不包含任何双反斜线."blah\\blah"实际上是blah\blah.
在普通的字符串文字(不以a开头@)中,你需要通过\在它们前面放一个反斜杠()来转义一些字符.其中一个字符是反斜杠本身,所以如果你想把一个反斜杠放入一个字符串中,你用另一个反斜杠来逃避它,这就是为什么path包含所有那些双反斜杠.在运行时,这些将是单反斜杠.
请参阅此处了解可用的转义序列:C#FAQ:Escpape序列
@另一方面,Verbatim Strings(以th开头)不需要为大多数字符转义.所以@"\"实际上是\.您需要在逐字符串中转义的唯一字符是引号.只需输入双引号即可完成此操作.所以@""""实际上是".
所以,如果你想要放入d:\project\Bloomberg\trunk\UI.Demo\一个字符串,你有两种可能性.
普通字符串文字(注意\被转义):
var path = "d:\\project\\Bloomberg\\trunk\\UI.Demo\\";
Run Code Online (Sandbox Code Playgroud)
或逐字字符串文字(无需转义\):
var path = @"d:\project\Bloomberg\trunk\UI.Demo\";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
318 次 |
| 最近记录: |