概念:C#提供的一个处理字符串的公共类。
特点:修改字符串而不创建新的对象,需要频繁修改拼接字符串时使用StringBuilder可以提升性能。
使用:使用前需要声明命名空间,using System.Text; 。
初始化
StringBuilder str = new StringBuilder("12345");
Console.WriteLine(str);
容量
- StringBuilder声明的字符串容量一开始为16,如果超过16就会自动扩容,一次扩容一倍,即第二次变为32;
- 这样字符串的更改就不需要一直产生新的对象,减少垃圾,提升性能。
Console.WriteLine(str.Capacity);
字符串长度
Console.WriteLine(str.Length);
增
str.Append("12345");
Console.WriteLine(str);
str.AppendFormat("{0}{1}",123,4165);
Console.WriteLine(str);
插入
str.Insert(0, "HHHH");
Console.WriteLine(str);
删
str.Remove(0, 4);
Console.WriteLine(str);
清空
str.Clear();
查
Console.WriteLine(str[3]);
改
str[0] = 'D';
Console.WriteLine(str);
替换
str.Replace("1", "G");
Console.WriteLine(str);
重新赋值
先清空,再增加。
不用新产生字符串对象
str.Clear();
str.Append("12345");
Console.WriteLine(str);
用Equals判断StringBuilder类型的字符串相等
if( str.Equals("12345") )
{
Console.WriteLine("相等");
}
string和StringBuilder的区别
string是存储字符串的类型。StringBuilder是C#提供的一个处理字符串的公共类。
相同:string和StringBuilder都可以用来存储字符串,并进行一些字符串处理。
不同:
- string每次修改字符串都会创建新的对象;StringBuilder有一个容量,在容量范围内每次修改字符串不会创建新的对象,超过容量了,每次增加一倍容量。
- String的值不可更改,StringBuilder的值是可更改的。
如何优化内存?
频繁使用字符串更改拼接时使用StringBuilder类型的字符串,可以减少内存垃圾。