StringBuilder 和 String 的区别?
来源:互联网 发布:dev php 中文 编辑:程序博客网 时间:2024/06/03 20:16
一、来写一个例子说明二者的区别:
1.using System.Diagnostics;//先引用这个命名空间
string写法:
//string str = null;//每次都要在内存里开新空间 //创建了一个计时器,用来记录程序运行的时间 Stopwatch sw = new Stopwatch(); sw.Start();//开始计时 for (int i = 0; i < 100000;i++) { str +=i; } sw.Stop();//结束计时 Console.WriteLine(sw.Elapsed); Console.ReadKey();
运行后:
2.StringBuilder写法:
StringBuilder sb = new StringBuilder();//没开扩新空间 //创建了一个计时器,用来记录程序运行的时间 Stopwatch sw = new Stopwatch(); sw.Start();//开始计时 for (int i = 0; i < 100000;i++) { sb.Append(i); } sw.Stop();//结束计时 Console.WriteLine(sb.ToString()); Console.WriteLine(sw.Elapsed); Console.ReadKey();<img src="http://img.blog.csdn.net/20151018102633080?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<span style="color:#ff0000;">总结:</span><span style="color:#333333;">1.String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而 StringBuilder 则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder,不要使用 String 如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。</span>
<span style="color:#333333;">2.两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。</span>
<span style="color:#333333;">3.而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。</span><span style="color:#ff0000;"> </span>
0 0
- 使用StringBuilder, StringBuilder和String的区别
- 使用StringBuilder, StringBuilder和String的区别
- 使用StringBuilder, StringBuilder和String的区别
- 使用StringBuilder, StringBuilder和String的区别
- StringBuilder 和 String 的区别?
- StringBuilder 和 String 的区别
- String 和 StringBuilder的区别
- String 和 StringBuilder 的区别
- string 和stringbuilder的区别
- string 和stringbuilder的区别
- StringBuilder和String的区别
- string 和 StringBuilder 的区别
- string 和stringbuilder的区别
- string 和 stringBuilder的区别
- string 和StringBuilder的区别
- string和stringbuilder的区别
- string和stringbuilder的区别
- StringBuilder和String的区别
- Displaying Bitmaps Efficiently (一)-----Loading Large Bitmaps Efficiently(二)
- 关于new和malloc
- CURL常用命令
- ==与equals区别
- 第7讲 项目2----求三个数中的最大值
- StringBuilder 和 String 的区别?
- thinking in java 笔记之控制程序流程
- ios程序开发和调试的证书相汇总
- 【HAOI2015】【BZOJ4034】树上操作T2
- qici引擎简单实现圆形化图片操作
- C中常用字符串处理函数
- hdu 2501 Tiling_easy version
- homebrew在Linux下的使用讨论及Linuxbrew安装方法
- 【Python】Learn Python the hard way, ex47 自动化测试,环境变量设置