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 能大幅提升性能。
所有评论(0)