• .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

     

  • 相关阅读:
    POST数据中有特殊符号导致数据丢失的解决方法
    Javascript中bind()方法的使用与实现
    Vue插件写、用详解(附demo)
    js自定义事件、DOM/伪DOM自定义事件
    对象可枚举和不可枚举属性
    js 数组 map方法
    Java源码学习(JDK 11)——java.util.concurrent.CopyOnWriteArrayList
    Java源码学习(JDK 11)——java.util.Collections
    Java源码学习(JDK 11)——java.util.Arrays
    Java源码学习(JDK 11)——java.lang.Collection
  • 原文地址:https://www.cnblogs.com/guziming/p/4232697.html
Copyright © 2020-2023  润新知