Java StringBuilder クラスは、可変 (変更可能な) String を作成するために使用されます。 Java StringBuilder クラスは、非同期であることを除けば StringBuffer クラスと同じです。 JDK 1.5 以降で利用可能です。
StringBuilder クラスの重要なコンストラクター
コンストラクタ | 説明 |
---|---|
StringBuilder() | 初期容量 16 の空の String Builder を作成します。 |
StringBuilder(文字列str) | 指定された文字列を使用して String Builder を作成します。 |
StringBuilder(int の長さ) | 指定された容量を長さとして持つ空の String Builder を作成します。 |
StringBuilder クラスの重要なメソッド
方法 | 説明 |
---|---|
public StringBuilder append(String s) | 指定された文字列をこの文字列に追加するために使用されます。 append() メソッドは、append(char)、append(boolean)、append(int)、append(float)、append(double) などのようにオーバーロードされます。 |
public StringBuilder insert(int offset, String s) | 指定した文字列を指定した位置にこの文字列とともに挿入するために使用されます。 insert() メソッドは、insert(int, char)、insert(int, boolean)、insert(int, int)、insert(int, float)、insert(int, double) などのようにオーバーロードされます。 |
public StringBuilder replace(int startIndex, int endIndex, String str) | これは、指定された startIndex および endIndex の文字列を置換するために使用されます。 |
public StringBuilder delete(int startIndex, int endIndex) | 指定された startIndex と endIndex から文字列を削除するために使用されます。 |
public StringBuilder reverse() | 文字列を反転するために使用されます。 |
public int 容量() | 現在の容量を返すために使用されます。 |
public void ensureCapacity(int minimumCapacity) | これは、指定された最小値以上の容量を確保するために使用されます。 |
パブリック char charAt(int インデックス) | 指定された位置にある文字を返すために使用されます。 |
パブリック int length() | 文字列の長さ、つまり合計文字数を返すために使用されます。 |
public String substring(int beginIndex) | これは、指定された beginIndex から部分文字列を返すために使用されます。 |
public String substring(int beginIndex, int endIndex) | これは、指定された beginIndex と endIndex から部分文字列を返すために使用されます。 |
Java StringBuilder の例
StringBuilder クラスのさまざまなメソッドの例を見てみましょう。
標準Cプログラミング
1) StringBuilder の append() メソッド
StringBuilder の append() メソッドは、指定された引数をこの String と連結します。
StringBuilderExample.java
class StringBuilderExample{ public static void main(String args[]){ StringBuilder sb=new StringBuilder('Hello '); sb.append('Java');//now original string is changed System.out.println(sb);//prints Hello Java } }
出力:
Hello Java
2) StringBuilderのinsert()メソッド
StringBuilderの insert() メソッドは、指定された位置に指定された文字列を挿入します。
StringBuilderExample2.java
class StringBuilderExample2{ public static void main(String args[]){ StringBuilder sb=new StringBuilder('Hello '); sb.insert(1,'Java');//now original string is changed System.out.println(sb);//prints HJavaello } }
出力:
HJavaello
3) StringBuilder replace() メソッド
StringBuilder replace() メソッドは、指定された beginIndex および endIndex から指定された文字列を置き換えます。
StringBuilderExample3.java
class StringBuilderExample3{ public static void main(String args[]){ StringBuilder sb=new StringBuilder('Hello'); sb.replace(1,3,'Java'); System.out.println(sb);//prints HJavalo } }
出力:
HJavalo
4) StringBuilderのdelete()メソッド
StringBuilder クラスの delete() メソッドは、指定された beginIndex から endIndex までの文字列を削除します。
StringBuilderExample4.java
class StringBuilderExample4{ public static void main(String args[]){ StringBuilder sb=new StringBuilder('Hello'); sb.delete(1,3); System.out.println(sb);//prints Hlo } }
出力:
Hlo
5) StringBuilder reverse() メソッド
StringBuilder クラスの reverse() メソッドは、現在の文字列を反転します。
コアJava面接の質問
StringBuilderExample5.java
class StringBuilderExample5{ public static void main(String args[]){ StringBuilder sb=new StringBuilder('Hello'); sb.reverse(); System.out.println(sb);//prints olleH } }
出力:
olleH
6) StringBuilderのcapacity()メソッド
StringBuilder クラスの Capacity() メソッドは、Builder の現在の容量を返します。ビルダーのデフォルトの容量は 16 です。現在の容量からキャラクターの数が増加すると、(oldcapacity*2)+2 だけ容量が増加します。たとえば、現在の容量が 16 の場合、(16*2)+2=34 となります。
StringBuilderExample6.java
class StringBuilderExample6{ public static void main(String args[]){ StringBuilder sb=new StringBuilder(); 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) StringBuilder ensureCapacity() メソッド
StringBuilder クラスの ensureCapacity() メソッドは、指定された容量が現在の容量の最小値であることを保証します。現在の容量より大きい場合は、(oldcapacity*2)+2 だけ容量を増やします。たとえば、現在の容量が 16 の場合、(16*2)+2=34 となります。
StringBuilderExample7.java
class StringBuilderExample7{ public static void main(String args[]){ StringBuilder sb=new StringBuilder(); 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