java - 在 Java 中使用字符串缓冲区进行字符串追加

标签 java string append sonarqube stringbuffer

我想知道 StringBuffer 的使用是否与我之前的代码执行相同的操作,因为 SonarQube 要求我不要使用 +=用于 append 字符串。

我以前的代码:

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

我使用 StringBuffer 的新代码:

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

这样更好吗?

感谢您的建议。

最佳答案

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

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

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

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

关于java - 在 Java 中使用字符串缓冲区进行字符串追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32883460/

相关文章:

java - bean 验证获取验证组

java - Hibernate 中的一对一共享主键映射可以是可选/空吗?

python - 列表项在我追加到列表后消失

jQuery 单击 append 元素

javascript - 类型错误 : 'append' called on an object that does not implement interface FormData

java - 使用 Java 8 Streams,如何在 HashMap 中找到给定元素的最大值

java - 使用 jsoup 提取价格

c# - 为什么在 string 和 float 之间转换错误?

html - 删除前导和尾随的换行符

c++ - 在 C++ 中计算数组中不相等的字符串