using System.Text; namespace Lesson24_面向对象相关_StringBuilder { internal class Program { static void Main(string[] args) { #region 知识回归 //string是一个比较特殊的引用类型 //每次赋值或修改,都会创建一个新的堆内存 //如果频繁修改字符串,会产生大量垃圾对象,影响性能 #endregion #region 知识点 StringBuilder //C#提供的一个用于处理字符串的公共类 //主要解决的问题是: //修改字符串而不创建新的对象,需要频繁修改和拼接字符串可以使用他,可以提升性能 //使用前 需要引用命名空间 #endregion #region 初始化 直接指明内容 StringBuilder str = new StringBuilder("Hello");//初始化时可以指定容量 eg:设置100的容量StringBuilder str = new StringBuilder("Hello",100); Console.WriteLine(str); #endregion #region 容量 //StringBuilder存在一个容量的问题,每次往里添加内容时,如果超过了容量,就会自动扩容 //获得容量 Console.WriteLine(str.Capacity); //获得字符长度 #endregion #region 增删查改 //增 Append str.Append(",World"); Console.WriteLine(str); //增 AppendFormat str.AppendFormat("! I am {0}, age {1}", "Tom", 20); Console.WriteLine(str); //删 Remove str.Remove(5, 24);//从索引5开始删除6个字符 Console.WriteLine(str); //查 ToString Console.WriteLine(str.ToString()); //改 Replace str[0] = 'h';//通过索引修改单个字符 Console.WriteLine(str); str.Replace("hello", "HELLO");//通过Replace修改字符串 Console.WriteLine(str); //插 Insert str.Insert(5, ", C#");//在索引5处插入字符串 Console.WriteLine(str); //清空 Clear str.Clear(); Console.WriteLine(str); //stringbuilder的其他方法 //Equals if(str.Equals("hello")) { Console.WriteLine("相等"); } else { Console.WriteLine("不相等"); } #endregion } } }