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

    xiaoxiao2024-12-14  54

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

    /仅作为本人学习笔记/

    最新回复(0)