VBScript中有一个函数String(number,character)
返回一个包含指定长度的重复字符的字符串。 E.g:
String(5, "A") ' output: "AAAAA"
有没有重复字符串的功能? E.g:
RepeatString(5, "Ab") ' output "AbAbAbAbAb"
答案 0 :(得分:14)
不,没有内置。相反:
n = 5
str = "Ab"
result = replace(space(n), " ", str)
答案 1 :(得分:2)
一般的简单解决方案
Function RepeatString( number, text )
Redim buffer(number)
RepeatString = Join( buffer, text )
End Function
但如果文字很短但重复次数很多,这是一个更快的解决方案
Function RepeatString( ByVal number, ByVal text )
RepeatString=""
While (number > 0)
If number And 1 Then
RepeatString = RepeatString & text
End If
number = number \ 2
If number > 0 Then
text = text & text
End If
Wend
End Function
答案 2 :(得分:1)
为简洁起见,可接受的答案是好的。但是下面的函数实际上快10倍。它的速度是RepeatString()
的两倍。它使用Mid
鲜为人知的功能,它用 repeating 模式一次性填充字符串缓冲区的其余部分...
Function Repeat$(ByVal n&, s$)
Dim r&
r = Len(s)
If n < 1 Then Exit Function
If r = 0 Then Exit Function
If r = 1 Then Repeat = String$(n, s): Exit Function
Repeat = Space$(n * r)
Mid$(Repeat, 1) = s: If n > 1 Then Mid$(Repeat, r + 1) = Repeat
End Function