String.replace“\\”with“/”

时间:2013-05-07 10:46:49

标签: c# asp.net string replace escaping

围绕这个似乎有很多问题,但我找到的那些似乎都不适合我。

我的代码:

string subFolderName = category = "Parent/Sub\\Sub sub";
string category = subFolderName.Replace(@"\\", @"/");

这会将category作为与subFoldername相同的字符串返回,即:

"Parent/Sub\\Sub sub".

我真正想要的是:

"Parent/Sub/Sub sub"

4 个答案:

答案 0 :(得分:6)

试试

string category = subFolderName.Replace(@"\", @"/");

它会起作用,因为category = "Parent/Sub\\Sub sub";包含一个\

答案 1 :(得分:2)

正如Damien_The_Unbeliever comment 中所说,当您将"Parent/Sub\\Sub sub"写为字符串时,实际上它只包含一个\字符。因此,String.Replace方法无法在字符串中找到\\

当您使用 verbatim string literal 时,您的字符串将完全您的编写方式。

string subFolderName = category = @"Parent/Sub\\Sub sub";
string category = subFolderName.Replace(@"\\", @"/");
Console.WriteLine(category);

Outpuw将是;

Parent/Sub/Sub sub

这是DEMO

答案 2 :(得分:1)

您如何看待类别的内容?如果您正在使用VS调试器,那么它将转义字符串,因此字符串中的\将显示为\\

所以你需要

string category = subFolderName.Replace(@"\", @"/");

string category = subFolderName.Replace("\\", "/");

答案 3 :(得分:1)

string category = subFolderName.Replace(@"\", "/");

使用此功能。