gpt4 book ai didi

java - StringBuffer 和 StringBuilder 中的警告

转载 作者:IT老高 更新时间:2023-10-28 23:29:24 25 4
gpt4 key购买 nike

我在 for 循环外部初始化了一个 StringBuffer,在 for 循环内部我连接了一些字符串。

我收到警告

'StringBuffer stringBuffer' may be declared as 'StringBuilder'

string concatenation as argument to 'stringbuilder.append()' call

然后我将 StringBuffer 更改为 StringBuilder,因为它比 StringBuffer 快。现在我收到警告为

string concatenation as argument to 'stringbuilder.append()' call

示例代码:

public static String stringConcat(String[] words) {
StringBuffer stringBuffer = new StringBuffer();
for (String word : words) {
stringBuffer.append(word).append(" ");
}
return stringBuffer.toString();
}

为什么我会收到这些警告。

编辑实际代码:

stringBuffer.append(word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase()).append(" ");

最佳答案

重点是:您仍在使用 + 运算符来处理您提供给 append() 的表达式中的字符串:

... word.substring(0, 1).toUpperCase() + word...

这否定了使用 StringBuilder(或 StringBuffer)的全部意义。

改为:只需调用 append() 两次!使用缓冲区/构建器的核心思想是仅使用附加调用来连接您想要的结果;喜欢:

append(word.substring(0, 1).toUpperCase()).append(word...

关于java - StringBuffer 和 StringBuilder 中的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43108059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com