检查下面的代码。我试图找到\\
并用\
单反斜杠替换,但似乎Replace()
方法无法做到这一点。我一直在test2
变量上得到相同的结果。
我怎么才能解决这个问题?
string test1 = "C:\\Users\\lik\\Desktop\\foo\\BacklogExcelGenerator\\bin\\Debug\\foo.xlsx";
string test2 = test1.Replace("\\", @"\");
发布于 2018-12-07 12:01:18
\
用作字符串中的转义字符。转义字符用于在字符串中编码特殊的“非打印”字符,如\n
是新行,\"
是引号等。由于\
是转义字符,为了编写\
,我们必须将其转义并以\\
的形式写入--这在代码中显示为双斜杠,如果在调试器中查看字符串,但无论是在内存中还是打印到屏幕上时,都显示为1。
例如
string s = "The quick \"brown\" fox jumped\nOver the lazy dog. \\\\o_o//";
将打印到屏幕上
The quick "brown" fox jumped
Over the lazy dog.\\o_o//
在逸出序列上轻松阅读一下,你就可以走了
用C#编写的逐字字符串(由@""
生成)将将所有内容视为文字,并且没有转义字符,如果需要换行符,则必须在2行以上编写字符串。在逐字字符串中唯一可以执行的转义方法是"
,这是由""
完成的
string s = @"The quick ""brown"" fox jumped
Over the lazy dog. \\o_o/";
将具有与上面转义字符串相同的输出。
The quick "brown" fox jumped
Over the lazy dog.\\o_o//
发布于 2018-12-07 11:50:05
"\\"
和@"\"
是包含在字符斜杠'\'
上的相等字符串。因此,您的方法将'\'
替换为'\'
。
\
是一个特殊的字符,用于声明其他一些值,如\n
-新行、\t
-选项卡等等。单斜杠被写成\\
。
阅读逸出序列文章中的更多内容。
发布于 2018-12-07 11:52:02
您在\\
中缺少了一个@来替换,请记住,\
是一个转义字符,所以您只需要为编译器要求一个条,最后您应该有这样的东西来替换双条
string test2 = test1.Replace(@"\\", @"\");
这样,您将指示\\
也是文字的。
https://stackoverflow.com/questions/53668959
复制相似问题