C#-从入门到精通-第5章 字符与字符串(3)

【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毫秒。

/仅作为本人学习笔记/

猜你喜欢

转载自blog.csdn.net/qq_43482627/article/details/90574307