.Net之路(十一)StringBuilder和string

         之前在东软代码生成器的代码中,我们经常看到strbuilder的使用。在之前,无论是机房收费系统还是学生信息管理系统,用的居多还是string。这次这里使用这个一个对象,所以小小的研究一下。花了一点时间做了一个小demo来熟悉一下。

 

 

string在效率的执行的差异


在东软中,主要是用来拼接一些sql的字符串。就是这个对象常用的方法append,直接来看看例子和执行的效率。


demo




stringbuilder

private void button1_Click(object sender, EventArgs e)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            int i = 0;
            DateTime StartTime  = DateTime.Now;
            
            while ( i < 10000 ) {
                sb.Append( i.ToString() );
            i++;
            }


            DateTime  EndTime  = DateTime.Now;            
          
            MessageBox.Show("stringbuilder的执行时间:" + (EndTime - StartTime));
        }

string 

 string sb1 = null;
            int i = 0;
            DateTime StartTime = DateTime.Now;
            while ( i < 10000 ) 
            {
            sb1 += i;
            i++;
            }
            DateTime EndTime  = DateTime.Now;
            MessageBox.Show("string的执行时间:" + (EndTime - StartTime))

结果






简单的算术得到的答案是:42倍。当然这只是其中某个时刻的执行效果,但足以说明问题。


常用的方法


通过上面的例子,可以轻易的看到stringstringbuilder在对于字符串拼接上效率的差异是非常大的,所以推荐在执行大量的数据操作时就很有必要使用stringbuilder


简单介绍一下简单的方法


   Append

 

 sb.Append("学校:好大学");
            sb.Append("姓名:王二麻子");
            string sbtwo=sb.ToString();
            MessageBox.Show(sbtwo);


Appendformat


 int MyInt = 25;

            MessageBox.Show(MyInt.ToString());
            sb.AppendFormat("{0:C} ", MyInt);
            
            MessageBox.Show(sb.ToString());


将int数据类型转换为人民币,要是在现实中也这样简单就好了,在代码过把瘾也是不错的。


效果






Insert


 sb.Append("I am a man!");
            mes();
            sb.Insert(6, "good");
            mes();


Replace

 

sb.Append("I am a man!");
            mes();
            sb.Replace('!','?');
            mes();


总的来说这些方法,都比较常见常用。还是不错的东西的,还有一些在查资料过程遇到比较好的东西。


你真的了解.NET中的String吗?

   http://terrylee.cnblogs.com/archive/2005/12/26/304876.html

   进一步了解string

   http://lixianhuei.cnblogs.com/archive/2005/12/27/305445.html

 

转载于:https://www.cnblogs.com/guziming/p/4232697.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值