【StringBuilder类】
命名空间为:System.Text;
StringBuilder str2 = new StringBuilder(" ");//声明一个空的stringbuilder类的变量
stringbuilder类的常用方法可以在帮助中查看
Append 方法,将文本追加到指定对象的末尾;
insert
remove
replace
等等
StringBuilder str1 = new StringBuilder("(),(),(),2、4、6、7、8");
Console.WriteLine(str1);
str1.Remove(0, 9);
str1.Insert(0, "(门前大桥下),(游过一群鸭),(快来快来数一数),");
Console.WriteLine(str1);
Console.ReadLine();
【string类与stringbuilder类的比较】
string类创建对象,改变对象的值,是在堆里面定义了另一个对象,如果无数次改变对象的值,那么就会在堆里面创建无数个对象;
stringbuilder类创建一个对象,就可以直接改变这个对象的值,堆里面永远只有这一个对象;
很显然在执行多次操作时,stringbuilder类的效率更高且消耗更小。
举个例子:
string str1 = ""; //声明一个空的string类型变量
long starttime = DateTime.Now.Millisecond; //记录开始时间,毫秒级
for(int i=0;i<10000;i++)
{
str1 += i; //执行一万次相加操作
}
long endtime = DateTime.Now.Millisecond; //记录结束时间
long time = endtime - starttime;
Console.WriteLine("string消耗的时间:{0}", time);
StringBuilder str2 = new StringBuilder(""); //声明空的stringbuilder类型变量
starttime = DateTime.Now.Millisecond;
for(int i=0;i<10000;i++)
{
str2.Append(i); //使用append方法执行追加操作
}
endtime = DateTime.Now.Millisecond;
time = endtime - starttime;
Console.WriteLine("stringbuilder消耗的时间:{0}", time);
Console.ReadLine();
结果是:
很显然看出stringbuilder类只消耗了3毫秒。
/仅作为本人学习笔记/