2016-08-18 1846 views
2

双斜线Replce单斜杠工作不总是返回单斜线..如何在C#中将单斜杠替换为双斜杠?

string input; 
    input = "\r\t"; 
    string mat1= input.Replace("\\\\","\\\\\\\\"); 
    string inputt= mat1; 

如果我运行上面的代码将返回输出\ r \ t只....

但我需要这样的

\ r \ t

+0

既“ \ r“和”\ t“是没有任何斜杠的命令符号(回车符和制表符),可能你想'input = @”\ r \ t“;' –

回答

3

"\r\t"输出其实只有两个字符,回车和标签。这是因为the \ escape character is used to specify special characters

如果你想要一个字符串,实际上是"\r\t"你需要通过使用\\转义\字符。

所以你的字符串应该是:

string mat1= input.Replace("\\","\\\\"); 

或者

string mat1= input.Replace(@"\", @"\\"); 

input = "\\r\\t"; 

或者

input = @"\r\t"; 

然后用双反斜线来代替反斜杠

+0

当我通过输入作为另一个输入字符串,如“输入=文本;”和text =“\ t \ r”..它不工作...它会采取单斜杠.. – user6479492

+0

@ user6479492恐怕我不明白你的意思... –

+0

上午通过输入作为参数。没有得到输出.. – user6479492

0

input = "\r\t";

是一个所谓的转义字符串。 \意味着转义序列。如果你需要\ r \ t你需要写

input = "\\r\\t";

0

这是2已经转义字符,而不是4

input="\r\t"; 
0

\r\t是特殊的文字。 Check this article

\r - 回车

\t - 水平制表

你想要什么,我GESS,就是要改变这种特殊的文字是这样的:

string input; 
input = "\r\t"; 
input = input.Replace("\r", "\\r"); 
input = input.Replace("\t", "\\t"); 
Console.WriteLine(input);