C# 字符串(String)
在C#编程语言中,字符串(String)是一种常用的数据类型,它用于存储一系列的字符。字符串是不可变的,这意味着一旦创建,就不能更改其值。本文将介绍如何在C#中创建、操作和使用字符串。
# 创建字符串
在C#中,可以使用字符串字面量或字符串构造函数来创建字符串。字符串字面量是由一对双引号包围的字符序列,如下所示:
string str1 = "Hello, World!";
字符串构造函数可以通过传递字符数组或字符指针来创建字符串,如下所示:
char[] chars = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!'};
string str2 = new string(chars);
# 操作字符串
C#提供了许多方法来操作字符串。以下是一些常见的字符串操作:
# 连接字符串
使用"+"运算符或String.Concat方法可以连接两个或多个字符串。示例如下:
string str3 = "Hello";
string str4 = "World";
string str5 = str3 + ", " + str4 + "!";
string str6 = String.Concat(str3, ", ", str4, "!");
# 获取字符串长度
使用String.Length属性可以获取字符串的长度,即其中包含的字符数。示例如下:
string str7 = "Hello, World!";
int len = str7.Length;
# 截取字符串
使用String.Substring方法可以截取字符串的一部分。该方法接受两个参数:起始索引和长度。示例如下:
string str8 = "Hello, World!";
string substr1 = str8.Substring(0, 5); // substr1的值为"Hello,"
string substr2 = str8.Substring(7); // substr2的值为"World!"
# 替换字符串
使用String.Replace方法可以将字符串中的一部分替换为另一个字符串。该方法接受两个参数:要替换的子字符串和替换后的字符串。示例如下:
string str9 = "Hello, World!";
string newStr = str9.Replace("World", "C#");
# 字符串格式化
在C#中,可以使用字符串插值(String Interpolation)或String.Format方法来格式化字符串。字符串插值使用"$"符号和花括号来将表达式嵌入到字符串中。示例如下:
string name = "Alice";
int age = 25;
string str10 = $"My name is {name} and I am {age} years old.";
String.Format方法使用花括号和占位符来指定格式,示例如下:
string name2 = "Bob";
int age2 = 30;
string str11 = String.Format("My name is {0} and I am {1} years old.", name2, age2);
# 总结
字符串是C#编程语言中的一个重要数据类型,可以通过字符串字面量或字符串构造函数来创建字符串。C#提供了许多方法来操作字符串,包括连接字符串、获取字符串长度、截取字符串和替换字符串等。此外,C#还提供了字符串格式化的功能,可以使用字符串插值或String.Format方法来格式化字符串。对于C#程序员来说,熟练掌握字符串的使用非常重要。
# 示例代码
下面是一个完整的示例代码,演示了如何创建、操作和格式化字符串:
using System;
class Program {
static void Main(string[] args) {
// 创建字符串
string str1 = "Hello, World!";
char[] chars = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!'};
string str2 = new string(chars);
// 连接字符串
string str3 = "Hello";
string str4 = "World";
string str5 = str3 + ", " + str4 + "!";
string str6 = String.Concat(str3, ", ", str4, "!");
// 获取字符串长度
string str7 = "Hello, World!";
int len = str7.Length;
// 截取字符串
string str8 = "Hello, World!";
string substr1 = str8.Substring(0, 5); // substr1的值为"Hello,"
string substr2 = str8.Substring(7); // substr2的值为"World!"
// 替换字符串
string str9 = "Hello, World!";
string newStr = str9.Replace("World", "C#");
// 字符串格式化
string name = "Alice";
int age = 25;
string str10 = $"My name is {name} and I am {age} years old.";
string name2 = "Bob";
int age2 = 30;
string str11 = String.Format("My name is {0} and I am {1} years old.", name2, age2);
// 输出结果
Console.WriteLine(str1);
Console.WriteLine(str2);
Console.WriteLine(str5);
Console.WriteLine(str6);
Console.WriteLine(len);
Console.WriteLine(substr1);
Console.WriteLine(substr2);
Console.WriteLine(newStr);
Console.WriteLine(str10);
Console.WriteLine(str11);
}
}
输出结果:
Hello, World!
Hello, World!
Hello, World!
Hello, World!
13
Hello,
World!
Hello, C#!
My name is Alice and I am 25 years old.
My name is Bob and I am 30 years old.