在C#编程中,string类型是引用类型,提供了大量内置方法用于处理字符串相关的各类需求,从基础的拼接、截取,到复杂的格式转换、内容匹配,都可以通过对应的字符串方法快速实现,不需要开发者手动编写底层逻辑。

常用字符串方法分类介绍
1. 字符串截取与分割
Substring方法用于从字符串中截取指定长度的子字符串,第一个参数是起始索引,第二个可选参数是截取长度,索引从0开始计数。
string originalStr = "HelloWorldCSharp"; // 从索引5开始截取,截取5个字符 string subStr1 = originalStr.Substring(5, 5); // 从索引10开始截取到字符串末尾 string subStr2 = originalStr.Substring(10); Console.WriteLine(subStr1); // 输出 World Console.WriteLine(subStr2); // 输出 CSharp
Split方法用于按照指定的分隔符将字符串拆分为字符串数组,支持单个分隔符、多个分隔符,也可以指定拆分的最大数量。
string dataStr = "apple,banana,orange,grape";
// 按照逗号分割字符串
string[] fruits = dataStr.Split(',');
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}
// 输出结果依次为 apple banana orange grape
// 按照多个分隔符分割
string mixedStr = "a-b;c_d";
string[] parts = mixedStr.Split(new char[] { '-', ';', '_' });
foreach (string part in parts)
{
Console.WriteLine(part);
}
2. 字符串查找与替换
Contains方法用于判断字符串中是否包含指定的子字符串,返回布尔值;IndexOf方法用于查找子字符串第一次出现的索引位置,未找到则返回-1。
string content = "C# is a powerful programming language";
bool hasCSharp = content.Contains("C#");
int index = content.IndexOf("powerful");
Console.WriteLine(hasCSharp); // 输出 True
Console.WriteLine(index); // 输出 7
Replace方法用于将字符串中指定的旧值替换为新值,支持字符替换和字符串替换两种形式。
string oldStr = "I like Java";
// 替换字符串
string newStr1 = oldStr.Replace("Java", "C#");
// 替换字符
string newStr2 = oldStr.Replace('I', 'We');
Console.WriteLine(newStr1); // 输出 I like C#
Console.WriteLine(newStr2); // 输出 We like Java
3. 字符串格式与转换
ToUpper和ToLower方法分别用于将字符串转换为全大写和全小写形式,转换时不会修改原字符串,而是返回新的字符串实例。
string testStr = "AbCdEfG"; string upperStr = testStr.ToUpper(); string lowerStr = testStr.ToLower(); Console.WriteLine(upperStr); // 输出 ABCDEFG Console.WriteLine(lowerStr); // 输出 abcdefg
Trim方法用于移除字符串首尾的空白字符,TrimStart和TrimEnd分别只移除开头或结尾的空白字符,也可以指定要移除的特定字符。
string spaceStr = " Hello C# ";
string trimmedStr = spaceStr.Trim();
Console.WriteLine(trimmedStr); // 输出 Hello C#
string symbolStr = "***Hello***";
// 移除首尾的*
string trimmedSymbol = symbolStr.Trim('*');
Console.WriteLine(trimmedSymbol); // 输出 Hello
4. 字符串拼接与判空
string.Concat方法用于拼接多个字符串,string.Join方法可以按照指定的分隔符拼接字符串数组。
string str1 = "Hello";
string str2 = "World";
// 拼接两个字符串
string concatStr = string.Concat(str1, " ", str2);
// 用指定分隔符拼接数组
string[] words = { "C#", "Python", "Java" };
string joinStr = string.Join("、", words);
Console.WriteLine(concatStr); // 输出 Hello World
Console.WriteLine(joinStr); // 输出 C#、Python、Java
string.IsNullOrEmpty方法用于判断字符串是否为null或者空字符串,string.IsNullOrWhiteSpace还会额外判断字符串是否只包含空白字符,是实际开发中最常用的判空方式。
string nullStr = null; string emptyStr = ""; string whiteSpaceStr = " "; Console.WriteLine(string.IsNullOrEmpty(nullStr)); // 输出 True Console.WriteLine(string.IsNullOrEmpty(emptyStr)); // 输出 True Console.WriteLine(string.IsNullOrWhiteSpace(whiteSpaceStr)); // 输出 True
使用字符串方法的注意事项
string类型在C#中是不可变的,所有对字符串的修改操作都会生成新的字符串实例,因此如果在循环中频繁进行字符串拼接或修改,建议使用StringBuilder类来提升性能,减少不必要的内存开销。
调用IndexOf、Substring等方法时,需要确保索引参数在合法范围内,否则会抛出ArgumentOutOfRangeException异常,实际开发中可以先判断字符串长度或者索引是否有效,避免程序崩溃。