c#中包含反斜杠的子字符串

本文关键字:字符串 包含反 | 更新日期: 2023-09-27 18:02:45

假设我有一个字符串string abc = "ROOT'abcd"。我想要得到子字符串"abcd"。

使用abc.substring(4),我只得到"bcd"作为回报。由于"'a"是c#中的一个特殊字符,因此似乎无法识别"a"。我怎么做才能得到"abcd"的整个子字符串?

c#中包含反斜杠的子字符串

如果您希望字符串包含反斜杠,则需要使用反斜杠转义或在字符串前加上@-符号:

string abc = @"ROOT'abcd";
string abc = "ROOT''abcd";
编辑:如果你用 创建了一个字符串
string a = "'a";

,然后将其存储在数据库中,字符串和数据库都不会在该位置包含字母"a"。相反,它将包含一个特殊字符,在一些终端上产生哔哔声或闪烁声,但在大多数现代系统上是不可见的。如果是这种情况,而不是您想要在数据库中存储的数据,则需要以正确的方式再次存储数据。我建议您打印您期望包含反斜杠的字符串,看看它们是否真的包含反斜杠。你也可以尝试select字段,你想包含一个反斜杠直接从sql server管理工作室(假设你正在使用sql server),并检查他们是否真的这样做。

在您的示例中,不能'a是转义序列字符,如bell(alert)。

这意味着,你的字符串实际上没有任何abcd字符串。您的字符串有ROOT, 'abcd字符串。

如果你可以将你的常规字符串字面量改为逐字字符串字面量,你的字符串可以拥有这个。

string abc = @"ROOT'abcd";
abc.Substring(5) // returns abcd

或将/字符加倍,如;

string abc = "ROOT''abcd";
abc.Substring(5) // returns abcd

请在字符串文字前添加'@'。此外,您需要使用Substring(5)来获取'abcd'。4给你一个'''

应该可以:

        string abc = @"ROOT'abcd";
        string s = abc.Substring(5);

编辑:"'a"是一个转义序列。在字符串前使用"@"来获取逐字面值