stringBuilder - 解决拼接字符串产生的滞留性

来源:互联网 发布:zblogphp.js 编辑:程序博客网 时间:2024/04/29 23:27
/* * 学习stringBuilder:目的解决拼接字符串产生的滞留性 * string类有不可改变性,每次执行字符串拼接的时候,实际上都会产生新的字符串对象 * stringBuilder类解决了对字符串重复修改过程中产生大量对象的问题*/using System;using System.Text;namespace 字符串补充StringBuilder{class MainClass{public static void Main (string[] args){// 初始化带有capacity来控制容量大小,并且允许我们修改容量的大小// 如果初始化是默认构造函数初始化的sb对象,那么默认capacity的大小为16//C#5.0版本capacity成1倍的增长//C#4.0版本之下的,拼接长度超出容量的时候翻一倍,如果没有超过就是默认容量大小16//StringBuilder sb = new StringBuilder();//Console.WriteLine ("没拼接前sb的容量为:{0}",sb.Capacity);//string a = "你好";//string b = "中国";//string c = "妈妈";////sb.Append (a);//sb.Append (b);//sb.Append (c);//sb.Capacity = 63;//// 结论//// 容量大小没有超过64,实际容量大小为64//// 容量>64  就是实际容量大小//Console.WriteLine ("拼接后sb的实际容量为:{0}",sb.Capacity);//Console.WriteLine ("拼接后sb的长度为:{0}",sb.Length);//Console.WriteLine (sb.ToString());// C#5.0下面这种初始化方式,容量大小取决于初始化字符串的长度// C#5.0以下跟上面情况相同//string s = "你好";//StringBuilder sb = new StringBuilder (s);//Console.WriteLine (sb.Capacity);//StringBuilder sb = new StringBuilder ("双击,");//sb.AppendFormat ("{0}", 666);//Console.WriteLine (sb.ToString());//string s = "你好啊;";//string s2 = "嗯,是的!~";////StringBuilder sb = new StringBuilder ().Clear (s);//new StringBuilder().Console.WriteLine ("aa");Console.ReadKey ();}}}

0 0
原创粉丝点击