将C#中的替换为



我有一个带有双反斜杠的长字符串(路径),我想用单反斜杠替换它:

string a = "a\b\c\d";
string b = a.Replace(@"\", @"");  

此代码不起任何作用。。。

b保持"a\b\c\d"

我还尝试了不同的反斜杠组合,而不是使用@,但没有成功。

因为您在声明a时没有使用@,所以字符串a在您的示例中不包含任何双斜杠。事实上,在您的示例中,a == "abcd",所以Replace找不到任何可替换的内容。尝试:

string a = @"a\b\c\d";
string b = a.Replace(@"\", @""); 

在C#中,不能有像"abcd"这样的字符串,因为有一个特殊的含义:它创建了一个转义序列和一个后面的字母(或数字组合)。

b实际上代表退格,cd是无效的转义序列(编译器会抱怨"无法识别的转义序列")。

那么,如何使用简单的创建字符串呢?您必须使用反斜杠来对反斜杠进行反斜杠:\(它是表示单个反斜杠的反斜杠序列)。

这意味着字符串"a\b\c\d"实际上表示abcd(它不表示a\b\c\d,因此没有双反斜杠)。如果你试着打印这个字符串,你会自己看到的。

C#还有一个称为逐字字符串文字(以@开头的字符串)的特性,它允许您编写@"abcd"而不是"a\b\c\d"

你错了。"\"返回(已知为逃逸)

string a = "a\b\c\d";
System.Console.WriteLine(a);  // prints abcd
string b = a.Replace(@"\", @"");  
System.Console.WriteLine(b);  // prints abcd

您甚至不需要string b = a.Replace(@"\", @"");

这适用于

您甚至不需要字符串b=a。替换(@"\",@"\");

但就像我们通过c代码生成dos命令一样。。。例如:-删除文件这将有助于

我在UWP应用程序的代码中做到了这一点。

foreach (var item in Attendances)
{
   string a = item.ImagePath;
   string b = a.Replace(@"\", "/");
   string c = a.Replace("\", "/");
   Console.WriteLine(b);
   Console.WriteLine(a);
   item.ImagePath = c;
}

而那些没有@符号的才是真正起作用的。这是C#8和C#9

相关内容

  • 没有找到相关文章

最新更新