2011-12-22 22 views
3

クラシックASPASP文字列から重複した単語を削除

私の文字列は、このように重複した単語が含まれています最初のインスタンスを元の文字列と同じ順序に保つことを望みますが、文字列の終わりの順序は本当に問題になりません。

20行のコードを書くことなく、これを達成するためのより効率的な方法がありますか?

答えて

11

2つの方法を示したいと思います。私は最初のものを好むだろう

myString = "cat dog dog mouse dog cat dog" 
arrWords = Split(myString, " ") 
sTmp = " " 
For Each word In arrWords 
    If word <> "" And InStr(1, sTmp, " " & word & " ", vbTextCompare) = 0 Then _ 
    sTmp = sTmp & word & " " 
Next 
Response.Write(Trim(sTmp)) 



使用してDictionaryオブジェクトのキー

myString = "cat dog dog mouse dog cat dog" 
Set oDict = Server.CreateObject("Scripting.Dictionary") 
oDict.CompareMode = vbTextCompare 
For Each word In Split(myString, " ") 
    oDict(word) = Null 
Next 
Response.Write(Join(oDict.Keys, " ")) 
Set oDict = Nothing 

文字列の連結。

:すべての比較では大文字と小文字が区別されません。大文字と小文字を区別したい場合は、vbTextCompareの定数をに変更する必要があります。vbBinaryCompare

+0

うわー!それはあなたの印象的で信じられないほど寛大です。私はすぐにそれを試してみます... – TheCarver

+0

あなたは大歓迎です。 OKを試してみましょう。 –

+0

うまくやってくれてありがとう!私もトップを使いました。 – TheCarver

関連する問題