2009-08-05 90 views
0

因此,我希望在之前插入字符的字符串中有一個字符索引數組,我如何在每個索引之前輕鬆插入字符?因此,例如:將字符插入指定索引處的字符串

「最大的棕色狐狸......」

位置 陣列= 4,9

插入字符 ''

結果:「該,大,棕色的狐狸......「

有沒有一種方法提供這樣一個簡單的工具?

String.insert(originalStr,index,stringToInsert)例如???


更新

我提供的例子只是一個示例實現。我可能還需要做到以下幾點:

orginalText =「與像字符一些文本;:} <」

中,我可能要插入「\」並將結果:

結果=「一些文字的字符像\;:} \ <」

+0

經典ASP,或ASP.NET? – 2009-08-05 18:24:08

+0

經典asp,對不起 – predhme 2009-08-05 18:25:46

回答

3

這是哈克,有點衝,但試試這個:

Dim sString: sString = "the something something" 
Dim position: position = 1 
Dim character: character = "F" 
if position = 0 then 
    sString = character + Left(Mid(sString, 1), Len(sString) + 1) 
else 
    sString = Left(sString, position) + character + Left(Mid(sString, position), Len(sString) - position + 1) 
end if 
+0

做了一個非常小的調整,完成了這項工作!謝謝你 – predhme 2009-08-05 18:50:09

+0

不知道爲什麼'else'語句會重複兩次'character' ...無論如何,感謝分享! – nwpulele 2016-06-08 19:51:49

0

我不是一個傳統的ASP用戶,但是您可以使用substring來獲取字符串的部分直到您必須插入字符的索引,子串字符串的另一部分,並採取這兩部分,並建立一個新的字符串做part1 &「,」& part2。

希望它有幫助。

0

您應該能夠使用基於單詞之間的空格的分割函數 - 這將返回一個單詞數組。然後,您可以在數組中的每個項目之後放置一個逗號,然後您可以找到要查找的需要的字符串。這裏的例子http://www.w3schools.com/VBscript/func_split.asp

+0

我的目的不是在空格之前放置逗號,而是在字符串的給定位置插入一個字符。這僅僅是一個例子。 – predhme 2009-08-05 18:36:19

+0

確定了它...中途是要走的路。 – OpenSource 2009-08-05 18:45:03

0

這已經有一段時間了,但是Mid(str,start,[end])是要走的路。

1

假設索引向後排序,循環並插入每個字符。

For lngPos = UBound(alngPositions) to 0 step -1 
    strText = Left(strText, alngPositions(lngPos) - 1) + "," + Mid(strText, alngPositions(lngPos)) 
Next 

請注意,您的示例數據當然會產生字符串「The,big,brown fox ...」。索引不是預先添加的以匹配結果字符串中的位置,是嗎?

編輯:
一種替代方案,將更快對於大的字符串,是在索引位置的字符串分割成一個陣列,然後加入用逗號串之間:

Dim astrSubstrings(UBound(alngPositions) + 1) 
lngLeft = 1 
For lngPos = 0 to UBound(alngPositions) 
    astrSubstrings(lngPos) = Mid(strText, lngLeft, alngPositions(lngPos) - lngLeft) 
    lngLeft = alngPositions(lngPos) 
Next 
astrSubstrings(UBound(alngPositions) + 1) = Mid(strText, lngLeft) 
strText = Join(astrSubstrings, ",")