c#中包含反斜杠的子字符串
本文关键字:字符串 包含反 | 更新日期: 2023-09-27 18:02:45
假设我有一个字符串string abc = "ROOT'abcd"
。我想要得到子字符串"abcd"。
使用abc.substring(4)
,我只得到"bcd"作为回报。由于"'a"是c#中的一个特殊字符,因此似乎无法识别"a"。我怎么做才能得到"abcd"的整个子字符串?
如果您希望字符串包含反斜杠,则需要使用反斜杠转义或在字符串前加上@-符号:
string abc = @"ROOT'abcd";
string abc = "ROOT''abcd";
编辑:如果你用
创建了一个字符串string a = "'a";
,然后将其存储在数据库中,字符串和数据库都不会在该位置包含字母"a"。相反,它将包含一个特殊字符,在一些终端上产生哔哔声或闪烁声,但在大多数现代系统上是不可见的。如果是这种情况,而不是您想要在数据库中存储的数据,则需要以正确的方式再次存储数据。我建议您打印您期望包含反斜杠的字符串,看看它们是否真的包含反斜杠。你也可以尝试select
字段,你想包含一个反斜杠直接从sql server管理工作室(假设你正在使用sql server),并检查他们是否真的这样做。
在您的示例中,不能。'a
是转义序列字符,如bell(alert)。
abcd
字符串。您的字符串有ROOT
, 'a
和bcd
字符串。
如果你可以将你的常规字符串字面量改为逐字字符串字面量,你的字符串可以拥有这个。
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"是一个转义序列。在字符串前使用"@"来获取逐字面值