StringBufferをforループの外部で初期化し、forループの内部でいくつかの文字列を連結しています。
警告が出ます
「StringBuffer stringBuffer」は「StringBuilder」として宣言できます
そして
'stringbuilder.append()'呼び出しの引数としての文字列連結
次に、StringBufferよりも比較的高速であるため、そのStringBufferをStringBuilderに変更しました。今、私は警告を受けています
'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(" ");
重要なのは、式の文字列にappend()
に与える+演算子をまだ使用していることです。
_... Word.substring(0, 1).toUpperCase() + Word...
_
これは、StringBuilder(またはStringBuffer)を使用する全体のポイントを無効にします。
代わりに、単にappend()
を2回呼び出すだけです!バッファー/ビルダーを使用することの核となる考え方は、追加呼び出しのみを使用して希望の結果を連結することです。お気に入り:
_append(Word.substring(0, 1).toUpperCase()).append(Word...
_
StringBuilder
の代わりにStringBuffer
を使用します
public static String stringConcat(String[] words) {
StringBuilder stringBuilder = new StringBuilder();
for (String Word : words) {
stringBuilder.append(Word).append(" ");
}
return stringBuilder.toString();
}