将字符插入指定索引处的字符串中

时间:2009-08-05 18:21:58

标签: string vbscript asp-classic

所以我在字符串中有一个字符索引数组,我希望之前插入一个字符,如何在每个索引之前轻松插入一个字符?例如:

“大棕狐......”

这些职位 array = 4,9

要插入','

的字符

结果:“大,棕色的狐狸......”

是否有提供这种简单实用程序的方法?

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


更新

我提供的示例只是一个示例实现。我也想做以下事情:

orginalText =“某些带有字符的文字;:}<”

我可能希望插入“\”,结果为:

result =“某些文字包含\;:} \<”

等字符

6 个答案:

答案 0 :(得分: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

答案 1 :(得分: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, ",")

答案 2 :(得分:0)

我不是一个经典的ASP用户,但你可以使用substring来获取字符串的一部分,直到你必须插入字符的索引,子字符串字符串的另一部分并取这两部分并构建一个第1部分和第1部分的新字符串“,”&第2部分

希望它有所帮助。

答案 3 :(得分:0)

你应该可以根据单词之间的空格使用split函数 - 这将返回一个单词数组。然后在数组中的每个项目后面加一个逗号,您就可以找到您要查找的需要的字符串。示例http://www.w3schools.com/VBscript/func_split.asp

答案 4 :(得分:0)

已经有一段时间了,但Mid(str,start,[end])将是你要走的路。

答案 5 :(得分:-2)

s="MyOldString"
n="New"
i = 5
newstring = Mid(s, 1, i) & n & Mid(s, i+1)

' newstring = "MyOldNewString"