【发布时间】:2015-08-22 16:34:28
【问题描述】:
你能解释一下为什么使用 StringBuilder 比每次都用“+”添加字符串要快得多吗?例如:
for (int i = 0; i < arr.length; i++) {
stringBuilder.append(arr[i]);
}
str = stringBuilder.toString();
比:
for (int i = 0; i < arr.length; i++) {
str = str + arr[i];
}
为什么会这样?
【问题讨论】:
-
那不是重复的...
-
toString()而不是ToString()让我觉得这是 java,而不是 C#。无论如何,请更正您所描述语言的标签。StringBuilder是一个类,可能有不同的实现,导致某些答案可能无效。 -
如果这是一个 Java 字符串问题,我的理解是字符串连接使用 + 运算符“更快”,因为 JDK/JVM 优化了最有效的方法,我上次查看时建议使用它会在后台使用 StringBuilder。有人建议,除非您在循环中连接,否则您应该使用 +。诚然,这又回到了 JDK 5 中。