我在for循环外初始化了一个StringBuffer,在for循环内我进行一些字符串拼接。
我得到了警告
'StringBuffer stringBuffer' 可以声明为 'StringBuilder'
和
将字符串连接作为 'stringbuilder.append()'调用的参数
然后我将该StringBuffer更改为StringBuilder,因为StringBuilder比StringBuffer更快。现在我得到了警告
将字符串连接作为 'stringbuilder.append()'调用的参数
示例代码:
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(" ");
StringBuilder
而非StringBuffer
,如果你可以使用Java 8+的语言特性,我会更喜欢使用return Stream.of(words).collect(Collectors.joining(" "));
。 - Elliott Frischappend()
内连接字符串。同时,不要发布混淆问题的示例代码。 - shmosel