String与StringBuilder
String对象是不可改变,每一次使用String类中的方法都要在内存中创建一个新的string对象,这就需要为该新对象分配新的空间。但是在需要对字符串执行多次重复修改时,此时的系统开销可能代价很大。此时就可以考虑System.Text.StringBuilder类。
例如,我有一个str的字符串,我想加长后输出。
static void Main(string[] args) { string str = "abc"; string str1 = str.Insert(3, "def");//创建一个新的string对象 StringBuilder stb = new StringBuilder("abc"); stb.Insert(3, "def"); Console.WriteLine("string:{0}\nstringbuilder:{1}",str1,stb); Console.ReadKey(); }
虽然StringBuilder对象是动态对象,允许扩充所封装的字符数量。但是仍可以设置一个最大字符数,即StringBuilder对象的容量。但此值不是当前StringBuilder对象容纳的字符串对象长度。
static void Main(string[] args) { //指定最大容量为10 StringBuilder stb = new StringBuilder("abc",10);
//也可以用Capacity来设置
//stb.Capacity = 10; //但是该对象的实际长度为3 Console.WriteLine(stb.Length); Console.ReadKey(); }
如果将Length 属性设置为大于等于Capacity属性的值,则自动将Capacity属性更改为与Length属性相同的值。如果将Length属性设置为小于当前StringBuilder 对象内的字符串长度的值,则会缩短该字符串。
StringBuilder常用方法
Append 将信息追加到当前 StringBuilder 的结尾。
AppendFormat 用带格式文本替换字符串中传递的格式说明符。
Insert 将字符串或对象插入到当前 StringBuilder 对象的指定索引处。
Remove 从当前 StringBuilder 对象中移除指定数量的字符。
Replace 替换指定索引处的指定字符。

浙公网安备 33010602011771号