
StringBuilder是一个用于处理字符串的公共类相比于String其优势在于避免在对字符串操作时频繁产生新对象而造成GC影响程序性能。使用时需要引用System.Text命名空间。且在利用StringBuilder声明字符串对象时需要new出对应的对象。StringBuilder本质仍然是字符数组但在实例化时会预先留存一定空间这样就会避免在添加字符时触发内存迁移同样提升了性能。当添加的内容超过预留空间时默认会将空间大小*2来进行扩容。接下来我们便可以对该对象进行一系列操作了且操作时是直接对原字符串进行修改而非产生新的字符串。using System.Data; using System.Text; namespace ConsoleApp17 { class Program { static void Main(string[] args) { StringBuilder sb new StringBuilder(abcdefg); Console.WriteLine(sb); //获取当前总空间长度 Console.WriteLine(sb.Capacity); //获取当前字符串的实际长度 Console.WriteLine(sb.Length); #region 增删查改 //增加 sb.Append(hi); Console.WriteLine(sb); sb.AppendFormat({0}, j); Console.WriteLine(sb); //插入 sb.Insert(10, k); Console.WriteLine(sb); //删除 sb.Remove(7, 10); Console.WriteLine(sb); //清空 sb.Clear(); Console.WriteLine(sb); //查找 StringBuilder sb2 new StringBuilder(abcdefg); Console.WriteLine(sb2[0]); //修改 sb2[0] A; Console.WriteLine(sb2); //替换 sb2.Replace(b, B); Console.WriteLine(sb2); //对StringBuilder类的对象重新赋值需要结合Clear()与Append()使用 sb2.Clear(); sb2.Append(abcdefg); //判断引用类型是否等同采用Equals()方法 bool judge sb2.Equals(abc); Console.WriteLine(judge); #endregion } } }