StringBuffer vs StringBuilder
どうしてStringじゃないの?
Stringはデフォルトでは可変ではありません.
オブジェクトを変更すると、元のオブジェクトを変更するのではなく、新しいオブジェクトが作成されます.
異なる点は、StringBufferとStringBuilderには、文字列を格納および変更できるメモリ領域があり、オブジェクトの文字列を変更できます.
したがって、文字列を頻繁に変更する場所では、StringBufferとStringBuilderを使用するとメモリのオーバーヘッドを削減できます.
StringBuffer vs StringBuilder
シングルスレッド環境の場合はStringBuilderを使用します.
StringBufferとStringBuilderの使い方(両方同じ)
作成
StringBuffer sb = new StringBuffer();
StringBuffer sb = new StringBuffer(10);
StringBuffer sb = new StringBuffer("AAA");
文字列の追加
append():末尾に文字列を追加
StringBuffer sb = new StringBuffer();
sb.append("111"); // "111"
sb.append("222"); // "111222"
sb.append("333"); // "111222333"
insert():指定したインデックスに文字列を追加
StringBuffer sb = new StringBuffer();
sb.append("111"); // "111"
sb.insert(2, "2"); // -> "1121"
逆方向():文字列を反転
StringBuffer sb = new StringBuffer();
sb.append("1234"); // "1234"
sb.reverse(); // "4321"
delete(start,end):startまたはend-1にインデックスされた文字列を削除します.
StringBuffer sb = new StringBuffer();
sb.append("12345"); // "12345"
sb.delete(1,3); //"23" 삭제
replace(start,end):startインデックスから(end-1)インデックスへの置換
StringBuffer sb = new StringBuffer();
sb.append("12345"); // "12345"
sb.replace(1,3,"66"); //"23"이 "66"으로 치환됨
Reference
この問題について(StringBuffer vs StringBuilder), 我々は、より多くの情報をここで見つけました https://velog.io/@devrunner21/StringBuffer-vs-StringBuilderテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol