国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

VBS中的字符串連接的性能問題

2020-06-26 18:25:40
字體:
供稿:網(wǎng)友
字符串連接誰不會,還用得著寫?沒錯,在VBS中連接字符串確實很簡單,無非就是&和+,不過本文不是討論&和+用法之間的區(qū)別,而是討論字符串連接的效率問題,即樣才能快速地連接字符串?
 
當然,對于少量的字符串連接,效率并沒有對程序造成多大影響,現(xiàn)在讓我們考慮一個極端的問題:將1到100000之間的所有數(shù)字連接成一個字符串。 

最簡單的解決方案是直接使用&連接: 
復制代碼代碼如下:

begin = Timer 
For i = 1 To 100000 
str = str & CStr(i) 
Next 
WScript.Echo str 
finish = Timer 
WScript.Echo finish - begin 

但是這個程序在我電腦上需要運行60.648秒,效率太低。換一種方案,用數(shù)組來解決: 
復制代碼代碼如下:

begin = Timer 
Dim arr(100000) 
For i = 1 To 100000 
arr(i) = i 
Next 
str = Join(arr, "") 
WScript.Echo str 
finish = Timer 
WScript.Echo finish - begin 

這次只用了0.742秒,大概快了60倍。在這個問題中數(shù)組的大小是可以事先確定的,如果不能預知數(shù)組的大小就必須使用動態(tài)數(shù)組。我水平比較低,不會用動態(tài)數(shù)組,有沒有更簡單的方法呢?答案是有,那就是字典: 
復制代碼代碼如下:

begin = Timer 
Set oDic = CreateObject("scripting.dictionary") 
For i = 1 To 100000 
oDic.Add i, CStr(i) 
Next 
str = Join(oDic.Items, "") 
WScript.Echo str 
finish = Timer 
WScript.Echo finish - begin 

運行時間為1.593,是數(shù)組的2倍,但是還是比&快多了,而且用起來比數(shù)組方便。 

總結:&連接符號的效率是比較低的,在連接少量字符串時可以使用,但是在大量字符串連接時應該使用Join函數(shù)+數(shù)組。 
原文:http://demon.tw/programming/vbs-string-concatenation.html

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 包头市| 辽中县| 房山区| 房产| 阿尔山市| 兴城市| 靖宇县| 石渠县| 东安县| 和顺县| 射洪县| 朝阳区| 德州市| 江北区| 邹平县| 靖西县| 金堂县| 乌鲁木齐市| 吉首市| 阳信县| 成安县| 峨山| 田林县| 静乐县| 三门县| 徐水县| 开远市| 卓资县| 东辽县| 通州市| 浦北县| 礼泉县| 新平| 堆龙德庆县| 河北省| 德化县| 玛曲县| 汨罗市| 通化县| 吉林省| 舟山市|