【发布时间】:2016-02-17 16:57:44
【问题描述】:
我有一个 512 个字符长的字符串,我需要循环打印 16 个字符长的部分。
例如,字符 1-16,然后是 2-17,然后是 3-18 等等。
我能找到打印子字符串的唯一方法是使用substringWithRange 来生成我想要的子字符串。但这每次都会分配一个新字符串,这会撞到堆上并导致我的性能不佳。
如何在不创建新字符串的情况下打印子字符串?
【问题讨论】:
-
如果它在一个循环中,那么它不只是将相同的变量重新分配给新的子字符串吗?因此,在每次迭代中,您只需分配一个变量。除非我误解了您的描述,否则我认为这不会导致严重的性能问题。
-
“但这每次都会分配一个新字符串,这会碰到堆并导致我的性能不佳。”证明它。