2009-08-05 93 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, ",")