在 Java 中使用字符串缓冲区追加字符串

Using String Buffer For String Appends in Java

我想知道 StringBuffer 的这种使用是否与我之前的代码做同样的事情,因为 SonarQube 要求我不要使用 += 来附加字符串。

我之前的代码:

String sign = "";
if (value < 0) {
    sign.append("-");
}

我使用 StringBuffer 的新代码:

StringBuffer sign = new StringBuffer();
sign.append("");
if (value < 0) {
    sign.append("-");
}

这样更好吗?

感谢您的建议。

StringBuffer 是比 String 串联更好的方法。

因为它会提供更好的内存利用率。

除非您在循环中使用该代码,否则您的第一种方式没有问题(字符串连接)。对于单次尝试,您可以使用它。

正如有人评论的那样,我假设写 sign.append("-");,你的意思是 sign +="-"

如果你在循环中使用我建议使用 StringBuilder 而不是 StringBuffer 因为 StringBuffer 有另一个开销是同步的。除非你需要线程安全,否则最好将其更改为StringBuilder

我不确定为什么 SonarQube 建议您使用 StringBuffer

是的,这是更好的方法,但是 StringBufferStringBuilder 慢,但是是同步的。
如果您使用此代码不是在多线程应用程序中,我建议您使用 StringBuilder.