C# - 字符串

本文关键字:字符串 | 更新日期: 2023-09-12 17:38:07

在 C# 中,字符串是用于表示文本的一系列字符。它可以是一个字符,一个单词或用双引号括起来的长段落"。以下是字符串文本。

"S"
"String"
"This is a string."

C# 提供字符串数据类型来存储字符串文本。可以声明字符串类型的变量并分配字符串文本,如下所示。

string ch = "S";
string word = "String";
string text = "This is a string.";

内存中 String 对象的最大大小为 2GB 或大约 10 亿个字符。但是,实际上它会更少取决于计算机的CPU和内存。

有两种方法可以在 C# 中声明字符串变量。使用类System.String并使用string关键字。两者都是一样的,没有区别。

string str1 = "Hello"; // uses string keyword
 
String str2 = "Hello"; // uses System.String class

在 C# 中,字符串是字符的集合或数组。因此,字符串可以使用 char 数组创建,也可以像 char 数组一样访问。

char[] chars = {'H','e','l','l','o'};
string str1 = new string(chars);  
String str2 = new String(chars); 
foreach (char c in str1)
{
    Console.WriteLine(c);
}

特殊字符

现实世界中的文本可以包含任何字符。在 C# 中,由于字符串用双引号括起来,因此它不能在字符串中包含 "。下面将给出编译时错误。

string text = "This is a "string" in C#.";

C# 在这些要包含在字符串中的特殊字符之前包含转义字符(反斜杠)。

在双引号前使用反斜杠和一些特殊字符,例如 , , 、等,以将其包含在字符串中。

string text = "This is a "string" in C#.";
string str = "xyzdef
abc";
string path = "mypc sharedproject";

逐字字符串

前缀以包含每个特殊字符很乏味。 C# 中的逐字字符串允许使用特殊字符和行制动器。 可以通过在双引号前加上 @ 符号来创建逐字字符串。

string str = @"xyzdef
abc";
string path = @"mypcsharedproject";
string email = @"[email protected]";

@ 符号也可用于声明多行字符串。

string str1 = "this is a 
" + 
        "multi line 
" + 
        "string";
		
// Verbatim string
string str2 = @"this is a 
        multi line 
        string";

请注意,您不能在 varbatim 字符串中使用反斜杠来允许 "。如果要包含 @,请使用双双引号""在逐字字符串中包含"

string text = "This is a "string" in C#."; // valid
string text = @"This is a "string." in C#."; // error
string text = @"This is a "string" in C#."; // error
string text = @"This is a ""string"" in C#."; // valid

字符串串联

可以使用 + 运算符连接多个字符串。

string name = "Mr." + "James " + "Bond" + ", Code: 007";
 
string firstName = "James";
string lastName = "Bond";
string code = "007";
 
string agent = "Mr." + firstName + " " + lastName + ", Code: " + code;

字符串在 C# 中是不可变的。这意味着它是只读的,一旦在内存中创建就无法更改。每次连接字符串时,.NET CLR 都会为串联的字符串创建新的内存位置。因此,如果您连接了五个以上的字符串,建议使用 StringBuilder 而不是字符串。

字符串插值

字符串

内插是连接字符串的更好方法。我们使用 + 符号将字符串变量与静态字符串连接起来。

C# 6 包含一个特殊字符 $,用于标识内插字符串。内插字符串是静态字符串和字符串变量的混合,其中字符串变量应位于 {} 括号中。

string firstName = "James";
string lastName = "Bond";
string code = "007";
 
string fullName = $"Mr. {firstName} {lastName}, Code: {code}";

在上面的插值示例中,$ 表示内插字符串,{} 包括要与字符串合并的字符串变量。

使用两个大括号"{{"或"}}"在字符串中包含 { 或 }。