以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 介绍一下StringBuilder (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7746) |
||||||||
-- 作者:狐狸爸爸 -- 发布时间:2010/8/1 10:31:00 -- 介绍一下StringBuilder StringBuilder
StringBuilder通常用于大规模地合并字符串。
StringBuilder的方法有:
示例
在命令窗口执行下面的代码:
Dim dt As Date = Date.NowDim v As String Dim s As new StringBuilder For i As Integer = 1 To 100000 s.AppendLine("abc") Next v = s.Tostring Output.Show((Date.now - dt).Totalseconds)
在我的电脑测试,上述代码耗时0.015秒。
如果不采用StringBuilder,直接用字符变量和合并: Dim dt As Date = Date.NowDim v As String For i As Integer = 1 To 100000 v = v & "abc" & vbcrlf Next Output.Show((Date.now - dt).Totalseconds)
在我的电脑运行上述代码,耗时100.5秒。
可以看出在大规模合并字符串的时候,使用StringBuider比直接使用字符变量的性能高出数百倍。
并非任何时候都要使用StringBuilder,例如我们将上面的代码修改一下,循环次数改为1000:
Dim dt As Date = Date.NowDim v As String For i As Integer = 1 To 1000 v = v & "abc" & vbcrlf Next Output.Show((Date.now - dt).TotalSeconds)
耗时只有0.15秒,如果循环次数改为100,耗时为0秒,显示此时是否使用StringBuilder,对于性能的影响都是轻微的。 [此贴子已经被作者于2010-8-1 11:21:05编辑过]
|
||||||||
-- 作者:reachtone -- 发布时间:2010/8/1 10:58:00 -- 数据可以添加到集合中,有没有将集合转变为数组或字符串的方法? |
||||||||
-- 作者:狐狸爸爸 -- 发布时间:2010/8/1 11:22:00 -- ToString方法将StringBuilder中的内容转换为字符串。 |
||||||||
-- 作者:czy -- 发布时间:2010/8/2 21:33:00 -- 呵呵,这种用法的机率不大。 帮助中的“显示此时是否使用StringBuilder”,似乎应该为“显然”。 |
||||||||
-- 作者:程兴刚 -- 发布时间:2010/8/2 23:43:00 -- 顶一顶! |