VBS中的字串連線的效能問題

2022-09-21 08:51:10 字數 1162 閱讀 4232

當然,對於少量的字串連線,效率並沒有對程式造成多大影響,現在讓我們考慮乙個極端的問題:將1到100000之間的所有數字連線成乙個字串。

最簡單的解決方案是直接使用&連線:

複製** **如下:

begin = timer

for i = 1 to 100000

str = str & cstr(i)

next

wscri程式設計客棧pt.echo str

finish = timer

wscript.echo finish - begin

但是這個程式在我電腦上需要執行60.648秒,效率太低。換一種方案,用陣列來解決:

複製** **如下:

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倍。在這個問題中陣列的大小是可以事先確定的,如果不能預知陣列的大小就必須使用動態陣列。我水平比較低,不會用動態陣列,有程式設計客棧沒有更簡單的方法呢?答案是有,那就是字典:

複製** **如下:

begin = timer

set odic = createobject("scripting.dictionary")

for i = 1 to 100000

odic.add i, cstr(i)

next

str = joindxevyrkpf(odic.items, "")

wscript.echo str

finish = timer

wscript.echo finish - begin

執行時間為1.593,是陣列的2倍,但是還是比&快多了,而且用起來比陣列方便。

總結:&連線符號的效率是比較低的,在連線少量字串時可以使用,但是在大量字串連線時應該使用joidxevyrkpfn函式+陣列。

原文:本文標題: vbs中的字串連線的效能問題

本文位址:

問題 A 字串連線

不借用任何字串庫函式實現無冗餘地接受兩個字串,然後把它們無冗餘的連線起來。每一行包括兩個字串,長度不超過100。可能有多組測試資料,對於每組資料,不借用任何字串庫函式實現無冗餘地接受兩個字串,然後把它們無冗餘的連線起來。輸出連線後的字串。abc def abcdef include const in...

問題 A 字串連線

題目描述 不借用任何字串庫函式實現無冗餘地接受兩個字串,然後把它們無冗餘的連線起來。輸入每一行包括兩個字串,長度不超過100。輸出可能有多組測試資料,對於每組資料,不借用任何字串庫函式實現無冗餘地接受兩個字串,然後把它們無冗餘的連線起來。輸出連線後的字串。樣例輸入 copy abc def 樣例輸出...

MySQL中的字串連線

mysql concat函式是mysql資料庫中眾多的函式之一,下文將對mysql concat函式的語法和使用進行說明,供您參考和學習。mysql concat函式使用方法 concat str1,str2,返回結果為連線引數產生的字串。如有任何乙個引數為null 則返回值為 null。注意 如果...