Unofficial
"CLDC 1.0
+ MIDP 1.0"
API Reference.
(日本語版)

java.lang
クラス StringBuffer

java.lang.Object
  上位を拡張 java.lang.StringBuffer

public final class StringBuffer
extends Object

書き換え可能な文字列を表現するクラスで、書き換えの行われない文字列を取り扱うことを前提とした String クラスのパートナー的なクラスです。 このクラスに保持される文字列は、長さおよび内容を関連するメソッドを通じて自由に変更することができます。

文字列の内容は主に追加を行う append メソッドと途中に挿入する insert メソッドで操作を行います。 この二つのメソッドは型に応じた複数のメソッドをオーバーライド定義しており、任意の型のオブジェクトにって文字列を操作することができます。

append メソッドは文字列バッファに渡されたオブジェクトの文字列表現を追加する処理を行います。 例えば文字列バッファの内容が"Number"の状態で int 値の 100append メソッドで追加すると文字列バッファの内容は"Number100"となります。

insert メソッドは文字列バッファの指定位置に渡されたオブジェクトの文字列表現を挿入する処理を行います。 例えば文字列バッファの内容が"OneThree"の状態で文字列"Two"を文字列バッファ内の 3 の位置に挿入するように insert メソッドで指示(insert(3, "Two"))するとバッファの内容は"OneTwoThree"となります。

append メソッドは、コンパイラによって + 演算子を伴う文字列の連結に使用されます。 例えばソースコードにおいて、

     String s = "abc" + 10 + "def";

といった記述をした場合、コンパイラによって

     String s = new StringBuffer().append("abc").append(10).append("def").toString();

に相当する処理へ自動的に展開されます。 これにより、文字列の変更が行えない String クラスを複数個展開するよりも少ないメモリと処理コストで文字列を操作することができます(String クラスのみでこの処理を行う場合、1つ何かを追加するたびに新しい String オブジェクトを生成する必要があります)。

このオブジェクトが保持する文字列バッファには容量がありますが、容量が不足する場合には自動的に増量します。 また、マルチスレッドにも対応しており、必要な同期化は自動的に行います。

関連項目:
ByteArrayOutputStream, String

コンストラクタの概要
StringBuffer()
          容量 16 文字の空のオブジェクトを構築します。
StringBuffer(int len)
          指定容量の空のオブジェクトを構築します。
StringBuffer(String value)
          文字列の長さ +16 文字の容量の指定された文字列を初期値とするオブジェクトを構築します。
 
メソッドの概要
 StringBuffer append(boolean b)
          文字列バッファへ渡された boolean 値の文字列表現を追加します。
 StringBuffer append(char ch)
          文字列バッファへ渡された文字を追加します。
 StringBuffer append(char[] value)
          文字列バッファへ char 配列によって表現される文字列を追加します。
 StringBuffer append(char[] value, int offset, int count)
          指定された char 配列 value の指定位置 offset から count 文字分が文字列バッファに追加されます。
 StringBuffer append(int value)
          文字列バッファへ渡された int 値の文字列表現を追加します。
 StringBuffer append(long value)
          文字列バッファへ渡された long 値の文字列表現を追加します。
 StringBuffer append(Object obj)
          指定されたオブジェクト obj に対して toString メソッドを呼び出した戻り値を文字列バッファへ追加します。
 StringBuffer append(String target)
          文字列バッファに指定された文字列を追加します。
 int capacity()
          文字列バッファの容量を返します。
 char charAt(int index)
          文字列バッファの指定位置の文字を返します。
 StringBuffer delete(int start, int end)
          文字列バッファ内の指定された部分の文字を削除します。
 StringBuffer deleteCharAt(int index)
          文字列バッファ内の指定位置の文字を削除します。
 void ensureCapacity(int minCapacity)
          文字列バッファの最低サイズを指定します。
 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
          文字列バッファに格納されている文字列の指定開始位置から指定終了位置までを char 配列へコピーします。
 StringBuffer insert(int offset, boolean b)
          文字列バッファの指定位置へ渡された boolean 値の文字列表現を挿入します。
 StringBuffer insert(int offset, char ch)
          文字列バッファの指定位置へ渡された文字を挿入します。
 StringBuffer insert(int offset, char[] value)
          指定された char 配列 value が文字列バッファの指定位置 offset に挿入されます。
 StringBuffer insert(int offset, int value)
          文字列バッファの指定位置へ渡された int 値の文字列表現を挿入します。
 StringBuffer insert(int offset, long value)
          文字列バッファの指定位置へ渡された long 値の文字列表現を挿入します。
 StringBuffer insert(int offset, Object obj)
          指定されたオブジェクト obj に対して toString() メソッドを呼び出した戻り値を文字列バッファ内の位置 offset に挿入します。
 StringBuffer insert(int offset, String target)
          指定された文字列 target が文字列バッファの指定位置 offset に挿入されます。
 int length()
          文字列バッファに格納している文字数を返します。
 StringBuffer reverse()
          文字列バッファに保持されている文字の順番を逆転します。
 void setCharAt(int index, char ch)
          文字列バッファ内の指定した位置の文字を指定した文字に置き換えます。
 void setLength(int len)
          文字列バッファの長さを指定します。
 String toString()
          文字列バッファの保持内容を持った新しい文字列を生成して返します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

StringBuffer

public StringBuffer()
容量 16 文字の空のオブジェクトを構築します。


StringBuffer

public StringBuffer(int len)
指定容量の空のオブジェクトを構築します。

パラメータ:
len - 文字バッファの初期サイズを渡します。

StringBuffer

public StringBuffer(String value)
文字列の長さ +16 文字の容量の指定された文字列を初期値とするオブジェクトを構築します。

パラメータ:
value - 初期値として設定する文字列を渡します。
メソッドの詳細

length

public int length()
文字列バッファに格納している文字数を返します。 これは文字列バッファの容量とは異なります。

戻り値:
文字列バッファに格納されている文字列の数を返します。
関連項目:
capacity()

capacity

public int capacity()
文字列バッファの容量を返します。 これは文字列バッファに格納されている文字数とは異なります。 文字列バッファの容量が足りなくなると自動的に拡張されます。

戻り値:
文字列バッファのサイズを返します。
関連項目:
length()

ensureCapacity

public void ensureCapacity(int minCapacity)

文字列バッファの最低サイズを指定します。 文字列バッファのサイズが指定サイズよりも小さい場合、指定されたサイズあるいは現在の容量の2倍+2したサイズのうち、大きい方のサイズへバッファのサイズが変更されます。

パラメータ minCapacity が負数の場合、このメソッドは何も処理を行いません。

パラメータ:
minCapacity - 指定する最低サイズを渡します。

setLength

public void setLength(int len)

文字列バッファの長さを指定します。 このメソッドを呼び出すとパラメータ len で指定された長さに文字列バッファの長さを変更します。 文字列バッファに含まれる文字数が新しい文字列バッファの長さよりも小さい場合は、その差分を null 文字 (\u0000 の文字 ) で埋めます。 逆に文字列バッファに含まれる文字数が新しい文字列バッファの長さよりも大きい場合は、新しい文字列バッファに入りきらない分を後ろから切り詰めます。

新しい文字列バッファの長さ len は正数でなければなりません。

パラメータ:
len - 新しく設定する文字列バッファの長さを渡します。
例外:
IndexOutOfBoundsException - パラメータ len が負数の場合に throw します。
関連項目:
length()

charAt

public char charAt(int index)
文字列バッファの指定位置の文字を返します。 位置は最初の文字を 0 としてし、length() メソッドの返り値以下でなければなりません。

パラメータ:
index - 文字列バッファ内の位置を渡します。
戻り値:
文字列バッファ内の指定位置の文字を返します。
例外:
IndexOutOfBoundsException - パラメータ index が負数の場合、あるいは length() メソッドの返り値と等しいかそれ以上の場合に throw します。
関連項目:
length()

getChars

public void getChars(int srcBegin,
                     int srcEnd,
                     char[] dst,
                     int dstBegin)

文字列バッファに格納されている文字列の指定開始位置から指定終了位置までを char 配列へコピーします。 文字列バッファ内の開始位置 srcBegin が示す位置から終了位置 srcEnd が示す位置の手前までをコピー先 char 配列 dst 内のコピー先位置 dstBegin へコピーします。

コピー元の開始位置は srcBegin、コピーする文字数は srcEnd - srcBegin、コピー開始先は dst 内の dstBegin から、コピー終了位置は dstBegin + srcEnd - srcBegin となります。

例えば文字列バッファに"ABCDEFG"が格納されている StringBuffer オブジェクト sb に対して、

     char[] c = new char[3];
     sb.getChars(1, 4, c, 0)

と実行すると、char 配列変数 c には、{ 'B', 'C', 'D' } がコピーされます。

配列中の位置を示す srcBeginsrcEnddstBegin が不正な場合は IndexOutOfBoundsException を throw します。 位置が不正と評価されるのは以下の場合です。

パラメータ:
srcBegin - 文字列バッファ内のコピー開始位置を渡します。
srcEnd - 文字列バッファ内のコピー終了位置 +1 を渡します。
dst - 文字列バッファ内から文字をコピーする先の char 配列を渡します。
dstBegin - コピーを開始する char 配列内の位置を渡します。
例外:
NullPointerException - パラメータ dstnull の場合に throw します。
IndexOutOfBoundsException - 配列中の位置を示すパラメータが不正な場合に throw します。

setCharAt

public void setCharAt(int index,
                      char ch)

文字列バッファ内の指定した位置の文字を指定した文字に置き換えます。 置き換え後の文字列バッファの内容は指定位置が新たな文字 ch に変更される以外は同一の内容が保持されます。

置き換える位置 index0 以上 length() メソッドの返り値未満で指定しなければなりません。

パラメータ:
index - 文字列バッファ内の置き換える位置を渡します。
ch - 指定位置の文字を置き換える文字を渡します。
例外:
IndexOutOfBoundsException - パラメータ index が負数の場合、あるいは length() メソッドの返り値と等しいかそれ以上である場合に throw します。
関連項目:
length()

append

public StringBuffer append(Object obj)

指定されたオブジェクト obj に対して toString メソッドを呼び出した戻り値を文字列バッファへ追加します。 文字列バッファ長さは追加された文字数分拡張します。

このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、

     sb.append(obj.toString());

と記述するのと等価です。

パラメータ:
obj - 文字列バッファへ追加するオブジェクトを渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
関連項目:
Object.toString(), String.valueOf(Object), append(String)

append

public StringBuffer append(String target)

文字列バッファに指定された文字列を追加します。 文字列バッファ長さは追加された文字数分拡張します。

targetnull の場合、文字列バッファには"null"の4文字が追加されます。

パラメータ:
target - 文字列バッファへ追加する文字列を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。

append

public StringBuffer append(char[] value)

文字列バッファへ char 配列によって表現される文字列を追加します。 文字列バッファ長さは追加された文字数分拡張します。

このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、

     sb.append(String.valueOf(value));

と記述するのと等価です。

パラメータ:
value - 文字列バッファへ追加する char 配列を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
関連項目:
String.valueOf(char[])

append

public StringBuffer append(char[] value,
                           int offset,
                           int count)

指定された char 配列 value の指定位置 offset から count 文字分が文字列バッファに追加されます。 文字列バッファ長さは追加された文字数分拡張します。

このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、

     sb.append(String.valueOf(value, offset, count));

と記述するのと等価です。

パラメータ:
value - 文字列バッファへ追加する char 配列を渡します。
offset - 文字列バッファへ char 配列内からコピー開始する位置を渡します。
count - 文字列バッファへ char 配列内からコピーする文字数を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
関連項目:
String.valueOf(char[], int, int)

append

public StringBuffer append(boolean b)

文字列バッファへ渡された boolean 値の文字列表現を追加します。 文字列バッファ長さは追加された文字数分拡張します。

このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、

     sb.append(String.valueOf(b));

と記述するのと等価です。

パラメータ:
b - 文字列バッファへ追加する boolean 値を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
関連項目:
String.valueOf(boolean)

append

public StringBuffer append(char ch)

文字列バッファへ渡された文字を追加します。 これにより、文字列バッファの長さは1増加します。

このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、

     sb.append(String.valueOf(ch));

と記述するのと等価です。

パラメータ:
ch - 文字列バッファへ追加する文字を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
関連項目:
String.valueOf(char)

append

public StringBuffer append(int value)

文字列バッファへ渡された int 値の文字列表現を追加します。 文字列バッファ長さは追加された文字数分拡張します。

このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、

     sb.append(String.valueOf(value));

と記述するのと等価です。

パラメータ:
value - 文字列バッファへ追加する int 値を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
関連項目:
String.valueOf(int)

append

public StringBuffer append(long value)

文字列バッファへ渡された long 値の文字列表現を追加します。 文字列バッファ長さは追加された文字数分拡張します。

このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、

     sb.append(String.valueOf(value));

と記述するのと等価です。

パラメータ:
value - 文字列バッファへ追加する long 値を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
関連項目:
String.valueOf(long)

delete

public StringBuffer delete(int start,
                           int end)

文字列バッファ内の指定された部分の文字を削除します。 削除対象となる文字は文字列バッファ内の start が示す位置から end - 1 が示す文字あるいは該当する文字が無い場合は最後までとなります。

例えば文字列バッファ内に"ABCDEFG"が格納されている状態で、delete(1, 4) としてこのメソッドを呼び出すと、文字列バッファ内の文字列は"AEFG"となります。

startend が等しい場合は文字列バッファに変化は生じません。

文字列バッファの位置の指定が不正な場合は StringIndexOutOfBoundsException を throw します。 不正と評価されるのは以下の場合です。

パラメータ:
start - 削除を開始する文字列バッファ内の位置を渡します。
end - 削除を終了する文字列バッファ内の位置 +1 を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
例外:
StringIndexOutOfBoundsException - 文字列バッファ中の位置を指定するパラメータが不正な場合に throw します。

deleteCharAt

public StringBuffer deleteCharAt(int index)

文字列バッファ内の指定位置の文字を削除します。 パラメータ index で指定された位置にある文字を削除します。 削除後の文字列バッファの内容は1文字少なくなります。

文字列バッファ中の位置を指定する index が不正な場合は StringIndexOutOfBoundsException を throw します。 不正と評価されるのは以下の場合です。

パラメータ:
index - 文字列バッファ内の削除する文字の位置を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
例外:
StringIndexOutOfBoundsException - index が示す位置が不正な場合に throw します。

insert

public StringBuffer insert(int offset,
                           Object obj)

指定されたオブジェクト obj に対して toString() メソッドを呼び出した戻り値を文字列バッファ内の位置 offset に挿入します。 この結果、文字列バッファ長さは挿入した文字数分拡張します。

このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、

     sb.insert(offset, obj.toString());

と記述するのと等価です。

文字列表現を挿入する位置は length() メソッドの返り値と等しいか小さくなければなりません。

パラメータ:
offset - 文字列表現を挿入する文字列バッファ内の位置を渡します。
obj - 文字列バッファへ追加するオブジェクトを渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
例外:
StringIndexOutOfBoundsException - offsetlength() メソッドの返り値よりも大きい場合に throw します。
関連項目:
Object.toString(), String.valueOf(Object), insert(int, String)

insert

public StringBuffer insert(int offset,
                           String target)

指定された文字列 target が文字列バッファの指定位置 offset に挿入されます。 この結果、文字列バッファ長さは挿入した文字数分拡張します。

targetnull の場合、文字列バッファには"null"の4文字が挿入されます。

文字列表現を挿入する位置は length() メソッドの返り値と等しいか小さくなければなりません。

パラメータ:
offset - 文字列を挿入する文字列バッファ内の位置を渡します。
target - 文字列バッファへ追加する文字列を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
例外:
StringIndexOutOfBoundsException - offsetlength() メソッドの返り値よりも大きい場合に throw します。

insert

public StringBuffer insert(int offset,
                           char[] value)

指定された char 配列 value が文字列バッファの指定位置 offset に挿入されます。 文字列バッファ長さは挿入された文字数分拡張します。

このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、

     sb.insert(offset, String.valueOf(value));

と記述するのと等価です。

文字列表現を挿入する位置は length() メソッドの返り値と等しいか小さくなければなりません。

パラメータ:
offset - 文字列を挿入する文字列バッファ内の位置を渡します。
value - 文字列バッファへ追加する char 配列を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
例外:
StringIndexOutOfBoundsException - offsetlength() メソッドの返り値よりも大きい場合に throw します。
関連項目:
String.valueOf(char[])

insert

public StringBuffer insert(int offset,
                           boolean b)

文字列バッファの指定位置へ渡された boolean 値の文字列表現を挿入します。 文字列バッファ長さは挿入した文字数分拡張します。

このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、

     sb.insert(offset, String.valueOf(b));

と記述するのと等価です。

文字列表現を挿入する位置は length() メソッドの返り値と等しいか小さくなければなりません。

パラメータ:
offset - 文字列を挿入する文字列バッファ内の位置を渡します。
b - 文字列バッファへ追加する boolean 値を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
例外:
StringIndexOutOfBoundsException - offsetlength() メソッドの返り値よりも大きい場合に throw します。
関連項目:
String.valueOf(boolean)

insert

public StringBuffer insert(int offset,
                           char ch)

文字列バッファの指定位置へ渡された文字を挿入します。 これにより、文字列バッファの長さは1増加します。

このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、

     sb.insert(offset, String.valueOf(ch));

と記述するのと等価です。

文字列表現を挿入する位置は length() メソッドの返り値と等しいか小さくなければなりません。

パラメータ:
offset - 文字列を挿入する文字列バッファ内の位置を渡します。
ch - 文字列バッファへ追加する文字を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
例外:
StringIndexOutOfBoundsException - offsetlength() メソッドの返り値よりも大きい場合に throw します。
関連項目:
String.valueOf(char)

insert

public StringBuffer insert(int offset,
                           int value)

文字列バッファの指定位置へ渡された int 値の文字列表現を挿入します。 文字列バッファ長さは挿入した文字数分拡張します。

このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、

     sb.insert(offset, String.valueOf(value));

と記述するのと等価です。

文字列表現を挿入する位置は length() メソッドの返り値と等しいか小さくなければなりません。

パラメータ:
offset - 文字列を挿入する文字列バッファ内の位置を渡します。
value - 文字列バッファへ追加する int 値を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
例外:
StringIndexOutOfBoundsException - offsetlength() メソッドの返り値よりも大きい場合に throw します。
関連項目:
String.valueOf(int)

insert

public StringBuffer insert(int offset,
                           long value)

文字列バッファの指定位置へ渡された long 値の文字列表現を挿入します。 文字列バッファ長さは挿入した文字数分拡張します。

このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、

     sb.insert(offset, String.valueOf(value));

と記述するのと等価です。

文字列表現を挿入する位置は length() メソッドの返り値と等しいか小さくなければなりません。

パラメータ:
offset - 文字列を挿入する文字列バッファ内の位置を渡します。
value - 文字列バッファへ追加する long 値を渡します。
戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。
例外:
StringIndexOutOfBoundsException - offsetlength() メソッドの返り値よりも大きい場合に throw します。
関連項目:
String.valueOf(long)

reverse

public StringBuffer reverse()

文字列バッファに保持されている文字の順番を逆転します。 例えば"ABCDEFG"が文字列バッファに格納されている時にこのメソッドを呼び出すと、文字列バッファの内容は"GFEDCBA"へ変更されます。

戻り値:
この StringBuffer クラスへの参照オブジェクトを返します。

toString

public String toString()

文字列バッファの保持内容を持った新しい文字列を生成して返します。

このメソッドは文字列バッファの内容を保持した新しい String オブジェクトを生成して返します。 このため文字列作成後に文字列バッファの内容を変更しても、文字列へ影響することはありません。

オーバーライド:
クラス Object 内の toString
戻り値:
文字列バッファの内容を持った新しい文字列を返します。

Unofficial
"CLDC 1.0
+ MIDP 1.0"
API Reference.
(日本語版)

このAPIリファレンスに記載されている内容は"さかきけい"が Sun Microsystems, Inc や Java Community Process が公開している各種公式資料を元に、独自に調査・編集したものであり、Sun Microsystems, Inc や Java Community Process 等とは一切関係ありません。したがってこのAPIリファレンスに関する問い合わせを関係各社等に対して行うことを固く禁じます。
また、記載された内容には既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本APIリファレンスを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開および Internet/Intranet/LAN を問わず他サイトに転載すること、複写および複製すること、ローカルファイル等に保存することを禁じます。


Copyright© 2001-2002,2005-2009 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。

Unofficial "CLDC 1.1 + MIDP 2.0" API Reference はこちらです。