Java 文字列バッファ


文字列を変更する場合は、StringBuffer クラスと StringBuilder クラスを使用する必要があります。

String クラスとは異なり、StringBuffer クラスと StringBuilder クラスのオブジェクトは、新しい未使用のオブジェクトを生成することなく、複数回変更できます。

StringBuilder クラスは Java 5 で提案されました。 StringBuffer との最大の違いは、StringBuilder のメソッドがスレッドセーフではない (同期的にアクセスできない) ことです。

StringBuilder は StringBuffer に比べて速度に優れているため、ほとんどの場合 StringBuilder クラスを使用することをお勧めします。ただし、アプリケーションでスレッド セーフが必要な場合は、StringBuffer クラスを使用する必要があります。

public class Test{

    public static void main(String args[]){
       StringBuffer sBuffer = new StringBuffer(" test");
       sBuffer.append(" String Buffer");
       System.out.println(sBuffer);  
   }
}

上記の例のコンパイル結果と実行結果は次のとおりです:

test String Buffer

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 replace(int start, int end, String str)
このシーケンスの部分文字列内の文字を、指定された String 内の文字に置き換えます。

次のリストのメソッドは、String クラスのメソッドに似ています:

シリアル番号 メソッドの説明
1 int 容量()
現在の容量を返します。
2 char charAt(int インデックス)
このシーケンス内の指定されたインデックスにある 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)
この文字列内で、指定された部分文字列が最後に出現したインデックスを返します。
9 int length()
長さ(文字数)を返します。
10 void setCharAt(int インデックス, char ch)
指定されたインデックスの文字を ch に設定します。
11 void setLength(int newLength)
文字列の長さを設定します。
12 CharSequence subSequence(int start, int end)
このシーケンスのサブシーケンスである新しい文字シーケンスを返します。
13 文字列の部分文字列(int start)
この文字シーケンスに現在含まれている文字のサブシーケンスを含む新しい String を返します。
14 文字列部分文字列(int start, int end)
このシーケンスに現在含まれている文字のサブシーケンスを含む新しい String を返します。
15 文字列 toString()
このシーケンス内のデータの文字列表現を返します。