我已经看到很多例子可以解决这个问题,但到目前为止还没有一个例子。也许我没有正确地做到这一点。我的代码是:
private void button1_Click(object sender, EventArgs e)
{
string str = "C:\\ssl\\t.txt";
string str2 = str.Replace("\\","\");
}
我的出局应该是这样的:
C:\ SSL \ t.txt
答案 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标记为\\
。
有关转义字符的列表,请查看以下页面:
答案 3 :(得分:1)
虽然所有其他答案都是正确的,但似乎OP很难理解它们,除非他们使用Directory
或Path
作为示例。
在C#中,\
字符用于描述特殊字符,例如\r\n
,代表System.Environment.NewLine
。
string a = "hello\r\nworld";
// hello
// world
因此,如果您想使用文字\
,则需要使用\\
string a = "hello\\r\\nworld";
// hello\r\nworld
这适用于 无处不在 ,即使在Regex
或Path
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);
}