Abi*_*h R 16 java stringbuilder android string-concatenation stringbuffer
我有一个StringBuffer在for循环外部和内部for循环初始化我连接一些字符串.
我收到了警告
'StringBuffer stringBuffer'可以声明为'StringBuilder'
和
字符串连接作为'stringbuilder.append()'调用的参数
然后我将StringBuffer更改为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();
}
Run Code Online (Sandbox Code Playgroud)
为什么我收到这些警告.
编辑实际代码:
stringBuffer.append(word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase()).append(" ");
Run Code Online (Sandbox Code Playgroud)
Gho*_*ica 33
关键是:您仍在使用+运算符表示您给出的表达式中的字符串append():
... word.substring(0, 1).toUpperCase() + word...
Run Code Online (Sandbox Code Playgroud)
这否定了使用StringBuilder(或StringBuffer)的全部意义.
相反:只需拨打append()两次电话!使用缓冲区/构建器的核心思想是仅使用追加调用来连接所需的结果; 喜欢:
append(word.substring(0, 1).toUpperCase()).append(word...
Run Code Online (Sandbox Code Playgroud)
用 StringBuilder而不是StringBuffer
public static String stringConcat(String[] words) {
StringBuilder stringBuilder = new StringBuilder();
for (String word : words) {
stringBuilder.append(word).append(" ");
}
return stringBuilder.toString();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6145 次 |
| 最近记录: |