多用用StringBuilder吧
来源:互联网 发布:4g数据流量费什么意思 编辑:程序博客网 时间:2024/04/29 22:52
如果要操作一个不断增长的字符串,请你不要再用String类了。为什么涕淌要这样说呢?我们来看看两个类的工作原理。
String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错。但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。
而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。
当然,一般情况下你是觉察不出这二者效率的差异的,但如果你要对某个字符串进行大量的添加操作,那么用StringBuilder类所耗费的时间和String类简直不是一个数量级的。下面是一个例子,你自己试一试:
Imports System
Imports System.Text
Namespace StringBuilderSample
Class clsStrBuilder
Shared Sub Main()
Dim i As Integer
Dim startTime As DateTime
Dim stopTime As DateTime
'用String类来连接字符串
Console.WriteLine("String类")
Dim str As String = String.Empty
startTime = DateTime.Now
Console.WriteLine(("开始时间:" & startTime.ToString()))
For i = 0 To 99999
str &= i.ToString()
Next i
stopTime = DateTime.Now
Console.WriteLine(("结束时间:" & stopTime.ToString()))
'用StringBuilder类来连接字符串
Console.WriteLine("StringBuilder类")
Dim builder As New StringBuilder()
startTime = DateTime.Now
Console.WriteLine(("开始时间:" & startTime.ToString()))
For i = 0 To 99999
builder.Append(i.ToString())
Next i
stopTime = DateTime.Now
Console.WriteLine(("结束时间:" & stopTime.ToString()))
End Sub
End Class
End Namespace
- 多用用StringBuilder吧
- 多用用StringBuilder吧
- 多学多用吧
- 多用用Eclipse的快捷键
- 多用GCD,少用PerformSelector
- 多用GCD,少用performSelector
- 多用GCD,少用performSelector
- 多用组合,少用继承
- 存储过程是多用还是少用?
- 存储过程是多用还是少用?
- 常用快捷键,平时多用用增加工作效率
- 为什么说多用组合,少用继承?
- Git多用Fetch少用Pull
- 为什么说多用组合,少用继承?
- 多用块枚举,少用for循环
- 多用派发队列,少用同步锁
- 多用块枚举,少用for循环
- 为什么要多用组合少用继承?
- 谁能不敬仰郑教授:3年发表82篇SCI Journal Papers
- C# Coding Standard
- C#设计模式之抽象工厂(AbstractFactory)
- C#设计模式之原型(ProtoType)
- JSP页面中连接IBM Cloudscape(derby)数据库
- 多用用StringBuilder吧
- 自己重新整理攒一个 SqlHelper.v3.1.cs 备用! (纯属抄袭)
- Java Tip 96: 使用 HTTPS 编写客户端程序
- pb中使用winapi生成全球唯一标示码(GUID,UUID)
- [转]自己动手打造嵌入式Linux软硬件开发环境
- .Net/C#: 一个将在线简体中文网页转为繁体中文页简单方法 (尚不完善 IHttpHandler Proxy / Response.Filter)
- (转)根据表中数据生成insert语句的存储过程
- 关于委托
- 【转贴】中国人可以活得更好