Java StringBuffer と StringBuilder クラス
文字列を変更する場合には、StringBuffer と StringBuilder クラスを使用する必要があります。
String クラスとは異なり、StringBuffer と StringBuilder クラスのオブジェクトは何度も変更でき、新しい未使用オブジェクトを生成しません。

StringBuffer クラスを使用する場合、毎回 StringBuffer オブジェクト自体に対して操作が行われ、新しいオブジェクトは生成されません。そのため、文字列を変更する必要がある場合は StringBuffer の使用が推奨されます。
StringBuilder クラスは Java 5 で導入されました。StringBuffer との最大の違いは、StringBuilder のメソッドがスレッドセーフではない(同期アクセスができない)ことです。
StringBuilder は StringBuffer よりも速度面で優れているため、ほとんどの場合 StringBuilder クラスの使用が推奨されます。
例
public class サンプルTest{
public static void main(String[] args){
StringBuilder sb = new StringBuilder(10);
sb.append("サンプル..");
System.out.println(sb);
sb.append("!");
System.out.println(sb);
sb.insert(8, "Java");
System.out.println(sb);
sb.delete(5,8);
System.out.println(sb);
}
}
上記の例をコンパイルして実行した結果は次のとおりです。
サンプル.. サンプル..! サンプル..Java! RunooJava!
ただし、アプリケーションがスレッドセーフを要求する場合は、StringBuffer クラスを使用する必要があります。
Test.java ファイルコード:
public class Test{
public static void main(String[] args){
StringBuffer sBuffer = new StringBuffer("サンプル 公式サイト:");
sBuffer.append("www");
sBuffer.append(".サンプル");
sBuffer.append(".com");
System.out.println(sBuffer);
}
}
上記の例をコンパイルして実行した結果は次のとおりです。
サンプル官网:www.example.com
StringBuffer メソッド
以下は StringBuffer クラスがサポートする主なメソッドです:
| 番号 | メソッドの説明 |
|---|---|
| 1 |
public StringBuffer append(String s) 指定された文字列をこの文字シーケンスに追加します。 |
| 2 |
public StringBuffer reverse() この文字シーケンスをその反転形式で置き換えます。 |
| 3 |
public delete(int start, int end) このシーケンスの部分文字列内の文字を削除します。 |
| 4 |
public insert(int offset, int i) 将 int引数の文字列表現をこのシーケンスに挿入します。 |
| 5 |
insert(int offset, String str)
将 str引数の文字列をこのシーケンスに挿入します。 |
| 6 |
replace(int start, int end, String str) 指定された String の String文字を使用して、このシーケンスの部分文字列内の文字を置き換えます。 |
以下のリストは、StringBuffer クラスのその他の一般的なメソッドを示しています。
| 番号 | メソッドの説明 |
|---|---|
| 1 |
int capacity() 現在の容量を返します。 |
| 2 |
char charAt(int index) このシーケンス内の指定されたインデックスにある char char値を返します。 |
| 3 |
void ensureCapacity(int minimumCapacity) 容量が指定された最小値以上であることを保証します。 |
| 4 |
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) このシーケンスから文字をターゲット文字配列にコピーします。 dst。 |
| 5 |
int indexOf(String str) この文字列内で指定された部分文字列が最初に出現するインデックスを返します。 |
| 6 |
int indexOf(String str, int fromIndex) 指定されたインデックスから開始して、この文字列内で指定された部分文字列が最初に出現するインデックスを返します。 |
| 7 |
int lastIndexOf(String str) この文字列内で指定された部分文字列が最後(右端)に出現するインデックスを返します。 |
| 8 |
int lastIndexOf(String str, int fromIndex) String オブジェクト内で部分文字列が最後に出現する位置を返します。 |
| 9 |
int length() 長さ(文字数)を返します。 |
| 10 |
void setCharAt(int index, char ch) 指定されたインデックスにある文字を設定します。 ch。 |
| 11 |
void setLength(int newLength) 文字シーケンスの長さを設定します。 |
| 12 |
CharSequence subSequence(int start, int end) このシーケンスの部分シーケンスである新しい文字シーケンスを返します。 |
| 13 |
String substring(int start) 新しい String を返します。 Stringこれは、この文字シーケンスが現在含む文字の部分シーケンスを含みます。 |
| 14 |
String substring(int start, int end) 新しい String を返します。 Stringこれは、このシーケンスが現在含む文字の部分シーケンスを含みます。 |
| 15 |
String toString() このシーケンス内のデータの文字列表現を返します。 |
詳細:
その他の拡張