當然,對於少量的字串連線,效率並沒有對程式造成多大影響,現在讓我們考慮乙個極端的問題:將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。注意 如果...