在循环中构建长字符串的高效方法?

时间:2009-08-30 17:58:36

标签: iphone cocoa-touch uikit

我有一个构建一个非常大的字符串的循环。每次迭代都会在该字符串中添加一个小字符串片段,并且该字符串会变得越来越大。有没有什么比使用NSMutableString更好的东西并附加另一个字符串?

1 个答案:

答案 0 :(得分:2)

附加到字符串的问题是,除非字符串已预先分配了所需的所有空间,否则您将需要进行一些分配和复制,从而导致O(n ^ 2)性能。

更高效的方法是使用NSArray:componentsJoinedByString:构建字符串列表的NSArray。附加到数组是恒定时间,并且由于它知道结果字符串的长度,因此它可以在O(n)时间内为您提供最终字符串。