CS3L25——StringBuilder
CS3L25——StringBuilder
本章代码关键字
1 | stringBuilder.Capacity //获取当前 StringBulider 的容量 |
StringBuilder
string
是特殊的引用类型,每次重新赋值或者拼接时会分配新的内存空间
如果一个字符串经常改变会非常浪费空间,同时也会频繁触发GC,性能消耗大
StringBuilder
是 C# 提供的一个用于处理字符串的公共类
主要解决的问题是:修改字符串而不创建新的对象,需要频繁修改和拼接的字符串可以使用它,可以提升性能
使用前,需要引用命名空间 System.Text
初始化直接指明字符串内容
1 | StringBuilder str = new StringBuilder("123123123"); |
输出:
1 | 123123123 |
容量
因为 StringBuilder
本质是一个字符数组
因此 StringBuilder
存在一个容量的问题 每次往里面添加时 会自动扩容
扩容会准备冗余的内存空间,减少重新分配内存空间的次数,提高性能
stringBuilder.Capacity
可以获取当前 StringBulider
的容量
stringBuilder.Length
可以获取当前 StringBulider
的字符串长度
1 | //获取当前StringBulider的容量 |
输出:
1 | 16 |
在初始化时直接指定容量
可以主动规定容量大小,在构造函数的第二个参数写入
1 | StringBuilder str2 = new StringBuilder("4444", 32); |
输出:
1 | 32 |
增删查改替换
增加
可以直接使用 Append()
追加,也可以使用格式化形式 AppendFormat()
追加
1 | StringBuilder str = new StringBuilder("123123123"); |
输出:
1 | 1231231234444 |
插入
Insert(要插入的下标位置, 要插入的字符串)
,在指定位置插入指定字符串
1 | StringBuilder str = new StringBuilder("1231231234444100999"); |
输出:
1 | Mr1231231234444100999 |
删除
Remove(删除起点的下标位置, 要删除多少个字符串)
,从指定位置后移除指定数量的字符串
1 | StringBuilder str = new StringBuilder("Mr1231231234444100999"); |
输出:
1 | 34444100999 |
清空
清除 StringBuilder
所有内容
1 | StringBuilder str = new StringBuilder("34444100999"); |
输出:
1 | ``` |
输出:
1 | M |
修改
直接通过索引器修改即可
1 | StringBuilder str = new StringBuilder("MrTang"); |
输出:
1 | LrTang |
替换
1 | StringBuilder str = new StringBuilder("LrTang"); |
输出:
1 | mrTang |
判断相等
使用 Equals()
即可判断 StringBuilder
和另一个字符串是否相等
1 | StringBuilder str = new StringBuilder("1234567890"); |
输出:
1 | 相等 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!