使用Replace()将\\替换为\

时间:2018-12-07 11:48:13

标签: c#

检查下面的代码。我正在尝试找到\\并替换为\单反斜杠,但似乎Replace()方法无法做到这一点。我在test2变量上得到了相同的结果。

我该如何解决?

string test1 = "C:\\Users\\lik\\Desktop\\foo\\BacklogExcelGenerator\\bin\\Debug\\foo.xlsx";


string test2 = test1.Replace("\\", @"\");

3 个答案:

答案 0 :(得分:1)

\用作字符串中的转义字符。转义字符用于对字符串内的特殊“非打印”字符进行编码,例如\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//

escape sequences上读一些书就很容易

@""用C#编写的逐字字符串将所有内容视为文字且不包含转义字符,如果要换行,则必须在两行上编写该字符串。您可以在逐字字符串中进行的唯一转义是",这是由""

完成的
string s = @"The quick ""brown"" fox jumped
Over the lazy dog. \\o_o/";

将与上面的转义字符串具有相同的输出

The quick "brown" fox jumped
Over the lazy dog.\\o_o//

答案 1 :(得分:0)

"\\"@"\"是相等的字符串,包含斜杠'\'。因此,您的方法将'\'替换为'\'

\是一个特殊字符,用于声明其他一些值,例如\n-换行符,\t-制表符等等。单斜杠写为\\

在文章Escape Sequences中了解更多信息。

答案 2 :(得分:0)

您在\\中缺少要替换的@,请记住\是转义字符,因此您只要求编译器加一个小节 最后,您应该有这样的东西来代替双杠

string test2 = test1.Replace(@"\\", @"\");

这样,您将表明\\也是文字