如何在C#中的字符串末尾添加符号

本文关键字:添加 符号 字符串 | 更新日期: 2023-09-27 17:59:23

请原谅我的一个初学者问题:)

string S="abc";
S+="'";

不会顺从。

string S="abc";
S+="''";

将使S="abc''''"

如何使S="abc"?

如何在C#中的字符串末尾添加符号

您的第二段代码是您想要的(或者像其他人建议的那样是逐字逐句的字符串文字@"'"),它只添加了一个反斜杠-将其打印到控制台,您就会看到这一点。

这两段代码:

S += "''";

S += @"'";

完全等效的。在这两种情况下,都会附加一个反斜杠1

我怀疑您被调试器视图弄糊涂了,它转义了反斜杠(和其他一些字符)。即使使用调试器,也可以通过查看S.Length来验证这一点,您会看到CCD_2是4而不是5。


1注意,它不会更改现有字符串中的数据,但它将S的值设置为引用字符串,该字符串由末尾带有反斜杠的原始字符串组成。中的字符串对象。NET是不可变的,但这是另一个主题。。。

试试这个:

String S = "abc";
S += @"'";

@=逐字字符串文字

http://msdn.microsoft.com/en-us/library/aa691090%28v=vs.71%29.aspx

http://msdn.microsoft.com/en-us/library/vstudio/362314fe.aspx

string S = "abs" + "''";  

应该并且确实导致abc'

您可能看到的是调试器/intellisense为您可视化字符串的方式。尝试将字符串打印到控制台或显示在文本框中。

您已经有了解决方案。它在调试时显示为abc''的原因是VS将转义反斜杠,将S的值打印到控制台窗口,您将看到abc'。您可以在字符串文字的开头添加一个@,例如

string S="abc";
S+= @"'";

这将达到同样的效果。

您可以用@字符转义反斜杠:

string S="abc";
S += @"'";

但这正是你在第二个例子中所写的内容。这方面的混乱源于Visual Studio调试器继续对这些字符进行转义,即使源字符串只包含一个反斜杠。

您的第二个示例是非常好的

string S="abc";
S+="''";

Visual studio显示字符串转义,这就是为什么您在结果字符串中看到两个斜杠的原因。如果你不想使用转义声明字符串像这个

@"'"

这不是在编译,因为编译器在转义符之后需要一个字符

string S="abc";
S+="'";
string S="abc";
S+="''";
Console.WriteLine(S); // This is what you're missing ;)

你会发现你的绳子一点都没有错。

反斜杠(')是一个转义字符,它允许您获得通常无法插入字符串中的特殊字符,例如代表NewLine字符的"'r'n",或基本上为您提供"字符的CCD13。

为了获得'字符,您需要输入"''",这正是您正在做的,也是您想要的。

使用逐字逐句(@)将'的所有出现替换为'',因此@"'" == "''"。这通常用于路径和正则表达式,其中需要大量的文本'。说@"C:'MyDirectory'MyFile"毕竟比说"C:''MyDirectory''MyFile"舒服。

试试这个

 string s="abc";
 s = s+"''";