我有一个字符串:
var path = "d:\\project\\Bloomberg\\trunk\\UI.Demo\\";
我正在尝试将 \\
替换为 \
。
我已经试过了:
path = path.Replace("\\\\", "\\");
path = path.Replace(@"\\", @"\");
这些都没有用单反斜杠替换双反斜杠。
最佳答案
路径
不包含任何双反斜杠。 "blah\\blah"
实际上是 blah\blah
。
在普通的字符串文字中(那些不是以 @
开头的),您需要通过在它们前面放置一个反斜杠 (\
) 来转义某些字符。其中一个字符是反斜杠本身,所以如果你想将一个反斜杠放入一个字符串中,你可以用另一个反斜杠将其转义,这就是为什么 path
包含所有这些双反斜杠的原因。在运行时,这些将是单个反斜杠。
请参阅此处了解可用的转义序列:C# FAQ: Escpape Sequences
另一方面,Verbatim 字符串(以 @
开头的字符串)中的大多数字符不需要转义。所以@"\"
实际上是\
。在逐字字符串中需要转义的唯一字符是引号。您只需键入一个双引号即可完成此操作。所以@""""
实际上是"
。
因此,如果您想将 d:\project\Bloomberg\trunk\UI.Demo\
放入字符串中,您有两种可能性。
普通字符串文字(注意 \
被转义):
var path = "d:\\project\\Bloomberg\\trunk\\UI.Demo\\";
或逐字字符串文字(无需转义\
):
var path = @"d:\project\Bloomberg\trunk\UI.Demo\";
关于c# - 在 C# 中,将 "\\"替换为 "\",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11646168/