C# 中的字符串(string类型,别名System.String )是最常用的引用类型之一。它表示一个不可变的字符序列(UTF-16)。

一、常用方法与属性

1. 基本信息

成员 说明 示例
Length 获取字符数(char 数量) "Hello".Length → 5
IsNullOrEmpty 静态方法,检查是否为 null 或 "" string.IsNullOrEmpty(s)
IsNullOrWhiteSpace 检查是否为 null、空或仅含空白字符 string.IsNullOrWhiteSpace(s)

2. 比较与判断

方法 说明
Equals(str) 或 == 内容相等(区分大小写)
Equals(str, StringComparison.OrdinalIgnoreCase) 不区分大小写的比较
CompareTo(str) 字典序比较,返回负数/零/正数
StartsWith(prefix) / EndsWith(suffix) 判断前缀/后缀
Contains(substring) 是否包含子串(C# 8+ 可用)
IndexOf(value) / LastIndexOf(value) 返回子串(或字符)首次/最后一次出现的索引,找不到返回 -1

3. 修改与处理(返回新字符串)

方法 说明
ToUpper() / ToLower() 大小写转换(注意:某些区域性有特殊规则;不区分语言环境时使用 ToUpperInvariant()
Trim() / TrimStart() / TrimEnd() 删除首尾空白(或指定字符)
Substring(startIndex, length) 提取子串
Replace(oldValue, newValue) 替换所有匹配项
Remove(startIndex, count) 删除指定位置的字符
Insert(index, value) 在指定位置插入字符串
PadLeft(totalWidth) / PadRight 用空格(或指定字符)填充至指定宽度

4. 拆分与合并

方法 说明
Split(params char[] separator) 按分隔符拆分为字符串数组
Split(StringSplitOptions) 控制是否保留空条目
Join(separator, string[] values) 静态方法,用分隔符合并数组

5. 格式化

方法 说明
Format(format, args...) 静态方法,类似 Console.WriteLine 的占位符
字符串内插 $"{expr}" 编译器转换为 Format,更直观

二、StringBuilder

StringBuilder是一个类(引用类型),内部维护一个char[] 数组(或更精确地说,一个可变的字符缓冲区),并记录了当前使用的长度(Length)和已分配的容量(Capacity)。

方法 说明 示例
Append(string) 追加字符串 sb.Append("Hello")
AppendLine() 追加换行符(环境相关) sb.AppendLine()
AppendFormat(...) 格式化追加(类似 string.Format sb.AppendFormat("Count: {0}", 10)
Insert(int index, string) 在指定位置插入 sb.Insert(0, "Start ")
Remove(int start, int length) 删除子串 sb.Remove(3, 2)
Replace(char old, char new) / Replace(string old, string new) 替换所有匹配字符/子串 sb.Replace('a', 'b')
Clear() 清空内容(Length = 0,容量不变) sb.Clear()
ToString() 返回最终的不可变字符串 string result = sb.ToString()
属性 Length 获取或设置当前长度(可截断) sb.Length = 5
属性 Capacity 获取或设置容量(若设置小于 Length 会异常) sb.Capacity = 256
EnsureCapacity(int) 确保容量至少为指定值,避免多次扩容 sb.EnsureCapacity(1000)
索引器 [index] 读取或修改单个字符 sb[0] = 'h'

StringBuilder是应对大量字符串修改的首选工具,它通过内部可变缓冲区避免了string不可变性带来的性能问题。对于极少数或已知长度的拼接,直接使用 string 操作更简洁;对于复杂动态构建,StringBuilder 能大幅提升性能。

更多推荐