【发布时间】:2015-09-06 04:18:09
【问题描述】:
我有一个字符串数组(A 到 E),我想加入一个字符串(“A B C D E”)。我应该循环遍历数组还是使用 Join 函数?
Dim MyArray(5) as String
Dim MyString as String
MyArray(1) = "A"
MyArray(2) = "B"
MyArray(3) = "C"
MyArray(4) = "D"
MyArray(5) = "E"
哪个更快更明智?
这个?
MyString = MyArray(1)
For i = 2 To 5
MyString = MyString & " " & MyArray(i)
Next
还是这个?
MyString = Join(MyArray, " ")
【问题讨论】:
-
我假设 join 会更快,因为它是在本机代码中实现的,而您在每次迭代中使用 for 循环增长字符串并调用两次连接运算符。可能会在前后获取系统时间(使用更大的数组)可以提供一些线索,说明哪个更好。
-
我建议您使用对您个人来说更具可读性的解决方案。对我来说,这就是 Join,因为它在概念上更简单,并且避免了一个错误和其他可能的细微错误。为什么您认为与您的应用程序所做的其他事情相比,这段特定代码的性能对您的应用程序更重要?
-
在构建字符串时,切勿将长字符串与两个短字符串连接(强制将长字符串复制两次)。所以而不是
MyString = MyString & " " & MyArray(i)使用MyString = MyString & (" " & MyArray(i))
标签: vba