Java StringBuffer クラス

Java StringBuffer クラスは、可変 (変更可能な) String オブジェクトを作成するために使用されます。 Java の StringBuffer クラスは、可変であること、つまり変更できることを除けば String クラスと同じです。

注: Java StringBuffer クラスはスレッドセーフです。つまり、複数のスレッドが同時にアクセスできません。したがって、安全であり、注文につながります。

StringBuffer クラスの重要なコンストラクター

コンストラクタ 説明
文字列バッファ() 初期容量 16 の空の文字列バッファーを作成します。
StringBuffer(文字列str) 指定された文字列を含む文字列バッファを作成します。
StringBuffer(int 容量) 指定された容量を長さとして持つ空の文字列バッファーを作成します。

StringBuffer クラスの重要なメソッド

修飾子とタイプ 方法 説明
パブリック同期StringBuffer append(文字列) 指定された文字列をこの文字列に追加するために使用されます。 append() メソッドは、append(char)、append(boolean)、append(int)、append(float)、append(double) などのようにオーバーロードされます。
パブリック同期StringBuffer insert(int オフセット, String ) 指定した文字列を指定した位置にこの文字列とともに挿入するために使用されます。 insert() メソッドは、insert(int, char)、insert(int, boolean)、insert(int, int)、insert(int, float)、insert(int, double) などのようにオーバーロードされます。
パブリック同期StringBuffer replace(int startIndex, int endIndex, String str) これは、指定された startIndex および endIndex の文字列を置換するために使用されます。
パブリック同期StringBuffer delete(int startIndex, int endIndex) 指定された startIndex と endIndex から文字列を削除するために使用されます。
パブリック同期StringBuffer 逆行する() 文字列を反転するために使用されます。
パブリック整数 容量() 現在の容量を返すために使用されます。
公共の空白 ensureCapacity(int minimumCapacity) これは、指定された最小値以上の容量を確保するために使用されます。
パブリック文字 charAt(int インデックス) 指定された位置にある文字を返すために使用されます。
パブリック整数 長さ() 文字列の長さ、つまり合計文字数を返すために使用されます。
パブリック文字列 部分文字列(int beginIndex) これは、指定された beginIndex から部分文字列を返すために使用されます。
パブリック文字列 substring(int beginIndex, int endIndex) これは、指定された beginIndex と endIndex から部分文字列を返すために使用されます。

可変文字列とは何ですか?

変更または変更できる文字列は、可変文字列と呼ばれます。 StringBuffer クラスと StringBuilder クラスは、変更可能な文字列を作成するために使用されます。

1) StringBuffer クラスの append() メソッド

append() メソッドは、指定された引数をこの String と連結します。

StringBufferExample.java

 class StringBufferExample{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello '); sb.append('Java');//now original string is changed System.out.println(sb);//prints Hello Java } }  

出力:

 Hello Java  

2) StringBuffer insert() メソッド

insert() メソッドは、指定された String を指定された位置にこの文字列とともに挿入します。

StringBufferExample2.java

 class StringBufferExample2{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello '); sb.insert(1,'Java');//now original string is changed System.out.println(sb);//prints HJavaello } }  

出力:

 HJavaello  

3) StringBuffer replace() メソッド

replace() メソッドは、指定された beginIndex および endIndex から指定された String を置き換えます。

StringBufferExample3.java

 class StringBufferExample3{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.replace(1,3,'Java'); System.out.println(sb);//prints HJavalo } }  

出力:

 HJavalo  

4) StringBuffer delete() メソッド

StringBuffer クラスの delete() メソッドは、指定された beginIndex から endIndex までの String を削除します。

StringBufferExample4.java

 class StringBufferExample4{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.delete(1,3); System.out.println(sb);//prints Hlo } }  

出力:

 Hlo  

5) StringBuffer reverse() メソッド

StringBuilder クラスの reverse() メソッドは、現在の String を反転します。

StringBufferExample5.java

 class StringBufferExample5{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.reverse(); System.out.println(sb);//prints olleH } }  

出力:

 olleH  

6) StringBuffer Capacity() メソッド

StringBuffer クラスの Capacity() メソッドは、バッファの現在の容量を返します。バッファのデフォルト容量は 16 です。現在の容量から文字数が増加すると、(oldcapacity*2)+2 だけ容量が増加します。たとえば、現在の容量が 16 の場合、(16*2)+2=34 となります。

StringBufferExample6.java

 class StringBufferExample6{ public static void main(String args[]){ StringBuffer sb=new StringBuffer(); System.out.println(sb.capacity());//default 16 sb.append('Hello'); System.out.println(sb.capacity());//now 16 sb.append('java is my favourite language'); System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2 } }  

出力:

 16 16 34  

7) StringBuffer ensureCapacity() メソッド

StringBuffer クラスの ensureCapacity() メソッドは、指定された容量が現在の容量の最小値であることを保証します。現在の容量より大きい場合は、(oldcapacity*2)+2 だけ容量を増やします。たとえば、現在の容量が 16 の場合、(16*2)+2=34 となります。

StringBufferExample7.java

 class StringBufferExample7{ public static void main(String args[]){ StringBuffer sb=new StringBuffer(); System.out.println(sb.capacity());//default 16 sb.append('Hello'); System.out.println(sb.capacity());//now 16 sb.append('java is my favourite language'); System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2 sb.ensureCapacity(10);//now no change System.out.println(sb.capacity());//now 34 sb.ensureCapacity(50);//now (34*2)+2 System.out.println(sb.capacity());//now 70 } }  

出力:

 16 16 34 34 70