跳到主要内容

C# 字符串操作

在C#编程中,字符串(string)是一种非常常用的数据类型,用于表示文本数据。C#中的字符串是不可变的,这意味着一旦创建,字符串的内容就不能被修改。然而,C#提供了丰富的字符串操作方法,允许我们对字符串进行各种操作,如连接、分割、替换、比较等。

字符串的创建

在C#中,字符串可以通过多种方式创建。最常见的方式是使用双引号(")将文本括起来。

csharp
string greeting = "Hello, World!";
Console.WriteLine(greeting);

输出:

Hello, World!
备注

字符串是不可变的,这意味着每次对字符串进行修改时,实际上都会创建一个新的字符串对象。

字符串的连接

字符串连接是将两个或多个字符串合并为一个字符串的操作。C#提供了多种方式来实现字符串连接。

使用 + 运算符

csharp
string firstName = "John";
string lastName = "Doe";
string fullName = firstName + " " + lastName;
Console.WriteLine(fullName);

输出:

John Doe

使用 String.Concat 方法

csharp
string firstName = "John";
string lastName = "Doe";
string fullName = String.Concat(firstName, " ", lastName);
Console.WriteLine(fullName);

输出:

John Doe

使用 StringBuilder

对于频繁的字符串连接操作,使用 StringBuilder 类可以提高性能。

csharp
StringBuilder sb = new StringBuilder();
sb.Append("Hello");
sb.Append(" ");
sb.Append("World");
string result = sb.ToString();
Console.WriteLine(result);

输出:

Hello World

字符串的比较

在C#中,字符串的比较可以通过多种方式进行。最常见的方式是使用 == 运算符或 String.Equals 方法。

使用 == 运算符

csharp
string str1 = "Hello";
string str2 = "Hello";
bool areEqual = str1 == str2;
Console.WriteLine(areEqual);

输出:

True

使用 String.Equals 方法

csharp
string str1 = "Hello";
string str2 = "hello";
bool areEqual = String.Equals(str1, str2, StringComparison.OrdinalIgnoreCase);
Console.WriteLine(areEqual);

输出:

True
提示

使用 StringComparison.OrdinalIgnoreCase 可以在比较时忽略大小写。

字符串的格式化

字符串格式化是将变量或表达式的值插入到字符串中的过程。C#提供了多种字符串格式化的方式。

使用 String.Format 方法

csharp
string name = "John";
int age = 30;
string message = String.Format("My name is {0} and I am {1} years old.", name, age);
Console.WriteLine(message);

输出:

My name is John and I am 30 years old.

使用插值字符串

插值字符串是C# 6.0引入的一种更简洁的字符串格式化方式。

csharp
string name = "John";
int age = 30;
string message = $"My name is {name} and I am {age} years old.";
Console.WriteLine(message);

输出:

My name is John and I am 30 years old.

字符串的分割与替换

字符串的分割

String.Split 方法可以将字符串按照指定的分隔符分割成多个子字符串。

csharp
string data = "apple,banana,cherry";
string[] fruits = data.Split(',');
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}

输出:

apple
banana
cherry

字符串的替换

String.Replace 方法可以将字符串中的指定子字符串替换为另一个字符串。

csharp
string text = "Hello World";
string newText = text.Replace("World", "C#");
Console.WriteLine(newText);

输出:

Hello C#

实际案例:用户输入验证

假设我们需要验证用户输入的电子邮件地址是否包含 @ 符号。

csharp
Console.WriteLine("请输入您的电子邮件地址:");
string email = Console.ReadLine();

if (email.Contains("@"))
{
Console.WriteLine("电子邮件地址有效。");
}
else
{
Console.WriteLine("电子邮件地址无效。");
}

输入:

user@example.com

输出:

电子邮件地址有效。

总结

C#中的字符串操作是编程中的基础技能之一。通过本文,我们学习了如何创建、连接、比较、格式化、分割和替换字符串。掌握这些操作将帮助你在实际编程中更高效地处理文本数据。

附加资源与练习

  • 练习1:编写一个程序,要求用户输入他们的名字和姓氏,然后将它们连接起来并输出完整的名字。
  • 练习2:编写一个程序,要求用户输入一段文本,然后统计其中包含的单词数量。
  • 练习3:编写一个程序,要求用户输入一个电子邮件地址,然后检查它是否包含 @ 符号和 . 符号。
警告

在实际开发中,处理用户输入时务必进行充分的验证,以防止潜在的安全问题。