Java StringBuffer With Method Examples

StringBuffer JavaのStringBufferは、スレッドセーフで変更可能な文字シーケンスであるため、StringBufferクラスを使用して変更可能なStringオブジェクトを作成できます。Javaのpost Stringでは、Stringオブジェクトは不変であること、つまり文字列は定数であることがすでにわかりました。 この不変性プロパティのために、連結のような文字列変更メソッドを使用すると、実際には、操作の結果を含む新しい文字列が作成され、返されます。 これは、文字列が複数回変更された場合、多くの中間文字列オブジェクトが作成される可能性があり、これらの中間オブジェクトに使用されるメモリ

StringBufferオブジェクトを使用すると、変更可能な複数のオブジェクトを作成するというこの問題を回避できます。 当然のことながら、StringBufferの主な操作はappendメソッドとinsertメソッドです。

目次
  1. Java StringBufferに関する重要なポイント
  2. Java StringBufferコンストラクタ
  3. Java StringBufferメソッドの例

Java StringBufferに関する重要なポイント

StringBufferクラスに関JavaのStringBufferは、StringBufferが変更可能であるという顕著な偏差を持つStringクラスの機能の多くを提供します。

  • StringBufferはスレッドセーフでもあるため、StringBufferオブジェクトは複数のスレッドで安全に使用できます。 StringBufferクラスのメソッドは、必要に応じて同期されます。
  • すべてのStringBufferは容量で作成されます。 文字列バッファに含まれる文字シーケンスの長さが容量を超えない限り、新しい内部バッファ配列を割り当てる必要はありません。 内部バッファがオーバーフローすると、自動的に大きくなります。
  • Java5以降のStringBuilderクラスも提供されていますが、これはStringBufferクラスと同等ですが、単一のスレッドで使用するために設計されています。 StringBuilderは同期を実行しないため、高速です。
  • Java StringBufferコンストラクタ

    StringBufferクラスには4つのコンストラクタがあります。StringBuffer()–文字を含まず、初期容量が16文字の文字列バッファを構築します。

    StringBuffer sb = new StringBuffer();
  • StringBuffer(int capacity)–文字のない文字列バッファと指定された初期容量を構築します。
    StringBuffer sb = new StringBuffer(30);
  • StringBuffer(CharSequence seq)–指定されたCharSequenceと同じ文字を含む文字列バッファを構築します。
    ここでCharSequenceは、CharBuffer、Segment、String、StringBuffer、StringBuilderによって実装されるインターフェイスです。
  • StringBuffer(String str)–指定された文字列の内容に初期化された文字列バッファを構築します。
    StringBuffer sb = new StringBuffer("Hello");
  • Java StringBufferメソッドの例

    appendメソッド

    appendメソッドは、任意の型のデータを受け入れるようにオーバーロードされます。 このメソッドは、指定されたデータ型の文字列表現を既存のバッファに追加します。 Appendメソッドは、常にこれらの文字をバッファーの末尾に追加します。例からわかるように、appendはStringを引数として、intを引数として使用され、これらのデータ型に対してオーバーロードされています。 このコード行のようにappendメソッドを連鎖させることもできます-

    sb.append("World").append(" ").append(123)

    appendメソッドを使用して、StringBufferが可変であるところで文字列が不変であ この例では、StringBufferオブジェクトが作成され、値が追加され、返された参照が別のStringBufferに格納されます。

    文字列が作成され、値が追加されるのと同じように、返された文字列も別の文字列によって参照されます。

    2つのStringBuffer参照の等価性を確認すると、両方が同じであるのに対し、String両方が異なることがわかります。

    public class StringLiteral {public static void main(String args) {// With StringBufferSystem.out.println("StringBuffer...");StringBuffer sb = new StringBuffer("Hello");sb.append(" ");StringBuffer newsb = sb.append("World").append(" ").append(123);if (sb == newsb) {System.out.println("Reference is same");}else {System.out.println("Reference is different");}// With StringSystem.out.println("String...");String str = "Hello";String newstr = str.concat(" ").concat("World").concat(" ").concat("123");if (str == newstr) {System.out.println("Reference is same");}else {System.out.println("Reference is different");}}}

    出力

    StringBuffer...Reference is sameString...Reference is different

    挿入メソッド

    挿入メソッドは、任意の型のデータを受け入れるようにオーバーロードされます。 このメソッドは、指定されたデータ型の文字列表現を既存のバッファに挿入するために使用されます。 Insertメソッドは、指定されたポイントに文字を追加します。

    挿入メソッドは、最初の文字がバッファに挿入される位置を示す整数と第二引数が挿入されるテキストである二つの引数を取ります。

    public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Knp"); sb.insert(3, "Code"); System.out.println("String after insert- " + sb); }}

    出力

    String after insert- KnpCode

    長さと容量のメソッド

    capacity()–StringBufferの現在の容量を返します。

    length()–このシーケンスの文字数を返します。ご覧のとおり、StringBufferは容量が30で作成されるため、容量は30として表示され、バッファ内の文字数は5なので、長さは5として表示されます。

    deleteおよびdeleteCharAtメソッド

    • delete(int start,int end)–このシーケンスの部分文字列内の文字を削除します。 開始インデックスが包括的であることを示すstart、終了インデックスが排他的であることを示すas end。
    • deleteCharAt(int index)–このシーケンス内の指定された位置にあるcharを削除します。
    public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Hello"); sb.delete(1, 4); System.out.println("After deletion- " + sb); System.out.println("Length of StringBuffer- " + sb.length()); }}

    出力

    After deletion- HoLength of StringBuffer- 2
    public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.deleteCharAt(4);System.out.println("After deletion- " + sb);System.out.println("Length of StringBuffer- " + sb.length());}}

    出力

    After deletion- HellLength of StringBuffer- 4

    Java StringBuffer逆メソッド

    reverse()–既存のstringbufferを反転します。Java StringBuffer replaceメソッド

    replace(int start,int end,String str)–このシーケンス(startからend-1)の部分文字列内の文字を、指定された文字列内の文字に置き換えます。

    public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.replace(3, 5, "ena");System.out.println("String- " + sb);}}

    出力

    String- Helena
    • メソッド例を持つJava StringBuilder
    • 文字列がJavaで不変である理由
    • Java String Thread Safe
    • Java String intern()メソッド
    • Java String split()メソッド
    • コンパクト文字列java9では
    • javaでlength()メソッドを使用せずに文字列の長さを検索する
    • charをstringに、stringをcharに変換する

    これは、メソッドの例を持つjava stringbufferのトピ 何かが欠落しているか、トピックについて共有する何かを持っている場合は、コメントを書いてくださ

    あなたも好きかもしれません

    コメントを残す

    メールアドレスが公開されることはありません。