2

围绕这个问题似乎有很多问题,但我发现的问题似乎都不适合我。

我的代码:

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

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

"Parent/Sub\\Sub sub".

我真正想要的是:

"Parent/Sub/Sub sub"
4

4 回答 4

6

你试一试

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

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

于 2013-05-07T10:48:38.983 回答
2

正如Damien_The_Unbeliever在他的评论中所说,当你写成"Parent/Sub\\Sub sub"一个字符串时,它实际上只包含一个\字符。因此,方法在您的字符串中String.Replace找不到。\\

当您使用逐字字符串文字时,您的字符串将完全是您编写它的方式。

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

输出将是;

Parent/Sub/Sub sub

这是一个DEMO.

于 2013-05-07T10:49:41.650 回答
1

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

所以你要么需要

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

或者

string category = subFolderName.Replace("\\", "/");
于 2013-05-07T10:50:21.320 回答
1
string category = subFolderName.Replace(@"\", "/");

用这个。

于 2013-05-07T10:51:49.873 回答