C# StringBuilder类
StringBuilder类位于System.Text命名空间下,使用StringBuilder类每次重新生成新字符串时不是再生成一个新实例,而是直接再原来字符串占用的内存看空间上进行处理,而且它可以动态的分配占用内存空间大小。因此在字符串处理操作比较多的情况下,使用StringBuilder类可以大大提高系统的性能。
默认情况下,编译器会自动为StringBuilder类型的字符串分配一定的内存容量,也可以在程序中直接修改其占用的字节数。
编写测试代码
using System; using System.Text; namespace StringBuilderExample { class Program { static void Main(string[] args) { StringBuilder str = new StringBuilder(); Console.WriteLine("字符串:{0},长度{1}", str, str.Length); Console.WriteLine("内存容量分配:{0}", str.Capacity); str = new StringBuilder("test string."); Console.WriteLine("字符串是:{0},长度:{1}", str, str.Length); Console.WriteLine("内存容量分配:{0}", str.Capacity); str.Append("append another string."); Console.WriteLine("字符串是:{0},长度:{1}", str, str.Length); Console.WriteLine("内存容量分配:{0}", str.Capacity); str = new StringBuilder("test string.", 5); Console.WriteLine("字符串是:{0},长度:{1}", str, str.Length); Console.WriteLine("内存容量分配:{0}", str.Capacity); str = new StringBuilder("test string.", 40); Console.WriteLine("字符串是:{0},长度:{1}", str, str.Length); Console.WriteLine("内存容量分配:{0}", str.Capacity); Console.ReadLine(); } } }
以下是.Net 4.5.2运行结果,版本不同可能会有差别