用单反斜杠替换双反斜杠

时间:2013-03-11 12:21:20

标签: c# str-replace

我已经看到很多例子可以解决这个问题,但到目前为止还没有一个例子。也许我没有正确地做到这一点。我的代码是:

private void button1_Click(object sender, EventArgs e)
{
    string str = "C:\\ssl\\t.txt";
    string str2 = str.Replace("\\","\");
}

我的出局应该是这样的:

  

C:\ SSL \ t.txt

5 个答案:

答案 0 :(得分:4)

str中的斜杠已经是单斜线。如果你这样做:

Console.WriteLine(str);
你会看到:

C:\ssl\t.txt

答案 1 :(得分:3)

你为什么这样做?在C语言中,您必须像\一样逃避:\\才能获得\,例如

string str = "C:\\ssl\\t.txt";

相当于

string str = @"C:\ssl\t.txt";

尝试输出字符串,你会看到它实际上是

C:\ssl\t.txt

答案 2 :(得分:2)

string str = "C:\\ssl\\t.txt";

这将输出为C:\ssl\t.txt。由于转义排序,C#将\ char标记为\\

有关转义字符的列表,请查看以下页面:

http://blogs.msdn.com/b/csharpfaq/archive/2004/03/12/what-character-escape-sequences-are-available.aspx

答案 3 :(得分:1)

虽然所有其他答案都是正确的,但似乎OP很难理解它们,除非他们使用DirectoryPath作为示例。

在C#中,\字符用于描述特殊字符,例如\r\n,代表System.Environment.NewLine

string a = "hello\r\nworld";

// hello
// world

因此,如果您想使用文字\,则需要使用\\

来转义它
string a = "hello\\r\\nworld";

// hello\r\nworld

这适用于 无处不在 ,即使在RegexPath s。

System.IO.Directory.CreateDirectory("hello\r\nworld"); // System.ArgumentException
// Obviously, since new lines are invalid in file names or paths

System.IO.Directory.CreateDirectory("hello\\r\\nworld");
// Will create a directory "nworld" inside a directory "r" inside a directory "hello"

在某些情况下,我们只关心文字\,所以一直写\\会变得很累,并且会使代码难以调试。为避免这种情况,我们使用逐字符@

string a = @"hello\r\nworld";

// hello\r\nworld

简答:
无需将\\替换为\ 事实上,您应该 NOT 尝试一下。

答案 4 :(得分:0)

   private void button1_Click(object sender, EventArgs e)
        {
             string str = "C:\\ssl\\t.txt";

             MessageBox.Show(str);

        }