|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.lang.StringBuffer
public final class StringBuffer
書き換え可能な文字列を表現するクラスで、書き換えの行われない文字列を取り扱うことを前提とした String クラスのパートナー的なクラスです。
このクラスに保持される文字列は、長さおよび内容を関連するメソッドを通じて自由に変更することができます。
文字列の内容は主に追加を行う append メソッドと途中に挿入する insert メソッドで操作を行います。
この2つのメソッドは型に応じた複数のメソッドをオーバーライド定義しており、任意の型のオブジェクトにって文字列を操作することができます。
append メソッドは文字列バッファに渡されたオブジェクトの文字列表現を追加する処理を行います。
例えば文字列バッファの内容が"Number"の状態で int 値の 100 を append メソッドで追加すると文字列バッファの内容は"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(double value)
文字列バッファへ渡された double 値の文字列表現を追加します。 |
StringBuffer |
append(float value)
文字列バッファへ渡された float 値の文字列表現を追加します。 |
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,
double value)
文字列バッファの指定位置へ渡された double 値の文字列表現を挿入します。 |
StringBuffer |
insert(int offset,
float value)
文字列バッファの指定位置へ渡された float 値の文字列表現を挿入します。 |
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 |
| コンストラクタの詳細 |
|---|
public StringBuffer()
16 文字の空のオブジェクトを構築します。
public StringBuffer(int len)
len - 文字バッファの初期サイズを渡します。public StringBuffer(String value)
value - 初期値として設定する文字列を渡します。| メソッドの詳細 |
|---|
public int length()
capacity()public int capacity()
length()public void ensureCapacity(int minCapacity)
文字列バッファの最低サイズを指定します。 文字列バッファのサイズが指定サイズよりも小さい場合、指定されたサイズあるいは現在の容量の2倍+2したサイズのうち、大きい方のサイズへバッファのサイズが変更されます。
パラメータ minCapacity が負数の場合、このメソッドは何も処理を行いません。
minCapacity - 指定する最低サイズを渡します。public void setLength(int len)
文字列バッファの長さを指定します。
このメソッドを呼び出すとパラメータ len で指定された長さに文字列バッファの長さを変更します。
文字列バッファに含まれる文字数が新しい文字列バッファの長さよりも小さい場合は、その差分を null 文字 (\u0000 の文字 ) で埋めます。
逆に文字列バッファに含まれる文字数が新しい文字列バッファの長さよりも大きい場合は、新しい文字列バッファに入りきらない分を後ろから切り詰めます。
新しい文字列バッファの長さ len は正数でなければなりません。
len - 新しく設定する文字列バッファの長さを渡します。
IndexOutOfBoundsException - パラメータ len が負数の場合に throw します。length()public char charAt(int index)
0 としてし、length() メソッドの戻り値以下でなければなりません。
index - 文字列バッファ内の位置を渡します。
IndexOutOfBoundsException - パラメータ index が負数の場合、あるいは length() メソッドの戻り値と等しいかそれ以上の場合に throw します。length()
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' } がコピーされます。
配列中の位置を示す srcBegin、srcEnd、dstBegin が不正な場合は IndexOutOfBoundsException を throw します。
位置が不正と評価されるのは以下の場合です。
srcBegin あるいは dstBegin が負数の場合。
srcBegin が srcEnd よりも大きい場合。
length() メソッドが返す値よりも srcEnd の方が大きい場合。
dstBegin + srcEnd - srcBegin の結果が dst.length よりも大きい場合。
srcBegin - 文字列バッファ内のコピー開始位置を渡します。srcEnd - 文字列バッファ内のコピー終了位置 +1 を渡します。dst - 文字列バッファ内から文字をコピーする先の char 配列を渡します。dstBegin - コピーを開始する char 配列内の位置を渡します。
NullPointerException - パラメータ dst が null の場合に throw します。
IndexOutOfBoundsException - 配列中の位置を示すパラメータが不正な場合に throw します。
public void setCharAt(int index,
char ch)
文字列バッファ内の指定した位置の文字を指定した文字に置き換えます。
置き換え後の文字列バッファの内容は指定位置が新たな文字 ch に変更される以外は同一の内容が保持されます。
置き換える位置 index は 0 以上 length() メソッドの戻り値未満で指定しなければなりません。
index - 文字列バッファ内の置き換える位置を渡します。ch - 指定位置の文字を置き換える文字を渡します。
IndexOutOfBoundsException - パラメータ index が負数の場合、あるいは length() メソッドの戻り値と等しいかそれ以上である場合に throw します。length()public StringBuffer append(Object obj)
指定されたオブジェクト obj に対して toString メソッドを呼び出した戻り値を文字列バッファへ追加します。
文字列バッファ長さは追加された文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.append(obj.toString());
と記述するのと等価です。
obj - 文字列バッファへ追加するオブジェクトを渡します。
StringBuffer クラスへの参照オブジェクトを返します。Object.toString(),
String.valueOf(Object),
append(String)public StringBuffer append(String target)
文字列バッファに指定された文字列を追加します。 文字列バッファ長さは追加された文字数分拡張します。
target が null の場合、文字列バッファには"null"の4文字が追加されます。
target - 文字列バッファへ追加する文字列を渡します。
StringBuffer クラスへの参照オブジェクトを返します。public StringBuffer append(char[] value)
文字列バッファへ char 配列によって表現される文字列を追加します。
文字列バッファ長さは追加された文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.append(String.valueOf(value));
と記述するのと等価です。
value - 文字列バッファへ追加する char 配列を渡します。
StringBuffer クラスへの参照オブジェクトを返します。String.valueOf(char[])
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)public StringBuffer append(boolean b)
文字列バッファへ渡された boolean 値の文字列表現を追加します。
文字列バッファ長さは追加された文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.append(String.valueOf(b));
と記述するのと等価です。
b - 文字列バッファへ追加する boolean 値を渡します。
StringBuffer クラスへの参照オブジェクトを返します。String.valueOf(boolean)public StringBuffer append(char ch)
文字列バッファへ渡された文字を追加します。 これにより、文字列バッファの長さは1増加します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.append(String.valueOf(ch));
と記述するのと等価です。
ch - 文字列バッファへ追加する文字を渡します。
StringBuffer クラスへの参照オブジェクトを返します。String.valueOf(char)public StringBuffer append(int value)
文字列バッファへ渡された int 値の文字列表現を追加します。
文字列バッファ長さは追加された文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.append(String.valueOf(value));
と記述するのと等価です。
value - 文字列バッファへ追加する int 値を渡します。
StringBuffer クラスへの参照オブジェクトを返します。String.valueOf(int)public StringBuffer append(long value)
文字列バッファへ渡された long 値の文字列表現を追加します。
文字列バッファ長さは追加された文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.append(String.valueOf(value));
と記述するのと等価です。
value - 文字列バッファへ追加する long 値を渡します。
StringBuffer クラスへの参照オブジェクトを返します。String.valueOf(long)
public StringBuffer delete(int start,
int end)
文字列バッファ内の指定された部分の文字を削除します。
削除対象となる文字は文字列バッファ内の start が示す位置から end - 1 が示す文字あるいは該当する文字が無い場合は最後までとなります。
例えば文字列バッファ内に"ABCDEFG"が格納されている状態で、delete(1, 4) としてこのメソッドを呼び出すと、文字列バッファ内の文字列は"AEFG"となります。
start と end が等しい場合は文字列バッファに変化は生じません。
文字列バッファの位置の指定が不正な場合は StringIndexOutOfBoundsException を throw します。
不正と評価されるのは以下の場合です。
start が負数の場合。
start が length() メソッドの戻り値よりも大きい場合。
start が end よりも大きい場合。
start - 削除を開始する文字列バッファ内の位置を渡します。end - 削除を終了する文字列バッファ内の位置 +1 を渡します。
StringBuffer クラスへの参照オブジェクトを返します。
StringIndexOutOfBoundsException - 文字列バッファ中の位置を指定するパラメータが不正な場合に throw します。public StringBuffer deleteCharAt(int index)
文字列バッファ内の指定位置の文字を削除します。
パラメータ index で指定された位置にある文字を削除します。
削除後の文字列バッファの内容は1文字少なくなります。
文字列バッファ中の位置を指定する index が不正な場合は StringIndexOutOfBoundsException を throw します。
不正と評価されるのは以下の場合です。
index が負数の場合。
index が length() メソッドの戻り値と等しいか大きい場合。
index - 文字列バッファ内の削除する文字の位置を渡します。
StringBuffer クラスへの参照オブジェクトを返します。
StringIndexOutOfBoundsException - index が示す位置が不正な場合に throw します。
public StringBuffer insert(int offset,
Object obj)
指定されたオブジェクト obj に対して toString() メソッドを呼び出した戻り値を文字列バッファ内の位置 offset に挿入します。
この結果、文字列バッファ長さは挿入した文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.insert(offset, obj.toString());
と記述するのと等価です。
文字列表現を挿入する位置は length() メソッドの戻り値と等しいか小さくなければなりません。
offset - 文字列表現を挿入する文字列バッファ内の位置を渡します。obj - 文字列バッファへ追加するオブジェクトを渡します。
StringBuffer クラスへの参照オブジェクトを返します。
StringIndexOutOfBoundsException - offset が length() メソッドの戻り値よりも大きい場合に throw します。Object.toString(),
String.valueOf(Object),
insert(int, String)
public StringBuffer insert(int offset,
String target)
指定された文字列 target が文字列バッファの指定位置 offset に挿入されます。
この結果、文字列バッファ長さは挿入した文字数分拡張します。
target が null の場合、文字列バッファには"null"の4文字が挿入されます。
文字列表現を挿入する位置は length() メソッドの戻り値と等しいか小さくなければなりません。
offset - 文字列を挿入する文字列バッファ内の位置を渡します。target - 文字列バッファへ追加する文字列を渡します。
StringBuffer クラスへの参照オブジェクトを返します。
StringIndexOutOfBoundsException - offset が length() メソッドの戻り値よりも大きい場合に throw します。
public StringBuffer insert(int offset,
char[] value)
指定された char 配列 value が文字列バッファの指定位置 offset に挿入されます。
文字列バッファ長さは挿入された文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.insert(offset, String.valueOf(value));
と記述するのと等価です。
文字列表現を挿入する位置は length() メソッドの戻り値と等しいか小さくなければなりません。
offset - 文字列を挿入する文字列バッファ内の位置を渡します。value - 文字列バッファへ追加する char 配列を渡します。
StringBuffer クラスへの参照オブジェクトを返します。
StringIndexOutOfBoundsException - offset が length() メソッドの戻り値よりも大きい場合に throw します。String.valueOf(char[])
public StringBuffer insert(int offset,
boolean b)
文字列バッファの指定位置へ渡された boolean 値の文字列表現を挿入します。
文字列バッファ長さは挿入した文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.insert(offset, String.valueOf(b));
と記述するのと等価です。
文字列表現を挿入する位置は length() メソッドの戻り値と等しいか小さくなければなりません。
offset - 文字列を挿入する文字列バッファ内の位置を渡します。b - 文字列バッファへ追加する boolean 値を渡します。
StringBuffer クラスへの参照オブジェクトを返します。
StringIndexOutOfBoundsException - offset が length() メソッドの戻り値よりも大きい場合に throw します。String.valueOf(boolean)
public StringBuffer insert(int offset,
char ch)
文字列バッファの指定位置へ渡された文字を挿入します。 これにより、文字列バッファの長さは1増加します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.insert(offset, String.valueOf(ch));
と記述するのと等価です。
文字列表現を挿入する位置は length() メソッドの戻り値と等しいか小さくなければなりません。
offset - 文字列を挿入する文字列バッファ内の位置を渡します。ch - 文字列バッファへ追加する文字を渡します。
StringBuffer クラスへの参照オブジェクトを返します。
StringIndexOutOfBoundsException - offset が length() メソッドの戻り値よりも大きい場合に throw します。String.valueOf(char)
public StringBuffer insert(int offset,
int value)
文字列バッファの指定位置へ渡された int 値の文字列表現を挿入します。
文字列バッファ長さは挿入した文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.insert(offset, String.valueOf(value));
と記述するのと等価です。
文字列表現を挿入する位置は length() メソッドの戻り値と等しいか小さくなければなりません。
offset - 文字列を挿入する文字列バッファ内の位置を渡します。value - 文字列バッファへ追加する int 値を渡します。
StringBuffer クラスへの参照オブジェクトを返します。
StringIndexOutOfBoundsException - offset が length() メソッドの戻り値よりも大きい場合に throw します。String.valueOf(int)
public StringBuffer insert(int offset,
long value)
文字列バッファの指定位置へ渡された long 値の文字列表現を挿入します。
文字列バッファ長さは挿入した文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.insert(offset, String.valueOf(value));
と記述するのと等価です。
文字列表現を挿入する位置は length() メソッドの戻り値と等しいか小さくなければなりません。
offset - 文字列を挿入する文字列バッファ内の位置を渡します。value - 文字列バッファへ追加する long 値を渡します。
StringBuffer クラスへの参照オブジェクトを返します。
StringIndexOutOfBoundsException - offset が length() メソッドの戻り値よりも大きい場合に throw します。String.valueOf(long)public StringBuffer reverse()
文字列バッファに保持されている文字の順番を逆転します。
例えば"ABCDEFG"が文字列バッファに格納されている時にこのメソッドを呼び出すと、文字列バッファの内容は"GFEDCBA"へ変更されます。
StringBuffer クラスへの参照オブジェクトを返します。public String toString()
文字列バッファの保持内容を持った新しい文字列を生成して返します。
このメソッドは文字列バッファの内容を保持した新しい String オブジェクトを生成して返します。
このため文字列作成後に文字列バッファの内容を変更しても、文字列へ影響することはありません。
Object 内の toStringpublic StringBuffer append(float value)
文字列バッファへ渡された float 値の文字列表現を追加します。
文字列バッファ長さは追加された文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.append(String.valueOf(value));
と記述するのと等価です。
value - 文字列バッファへ追加する float 値を渡します。
StringBuffer クラスへの参照オブジェクトを返します。String.valueOf(float)public StringBuffer append(double value)
文字列バッファへ渡された double 値の文字列表現を追加します。
文字列バッファ長さは追加された文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.append(String.valueOf(value));
と記述するのと等価です。
value - 文字列バッファへ追加する double 値を渡します。
StringBuffer クラスへの参照オブジェクトを返します。String.valueOf(double)
public StringBuffer insert(int offset,
float value)
文字列バッファの指定位置へ渡された float 値の文字列表現を挿入します。
文字列バッファ長さは挿入した文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.insert(offset, String.valueOf(value));
と記述するのと等価です。
文字列表現を挿入する位置は length() メソッドの戻り値と等しいか小さくなければなりません。
offset - 文字列を挿入する文字列バッファ内の位置を渡します。value - 文字列バッファへ追加する float 値を渡します。
StringBuffer クラスへの参照オブジェクトを返します。
StringIndexOutOfBoundsException - offset が length() メソッドの戻り値よりも大きい場合に throw します。String.valueOf(float)
public StringBuffer insert(int offset,
double value)
文字列バッファの指定位置へ渡された double 値の文字列表現を挿入します。
文字列バッファ長さは挿入した文字数分拡張します。
このメソッドの呼び出しは、sb をこのインスタンスだとした場合に、
sb.insert(offset, String.valueOf(value));
と記述するのと等価です。
文字列表現を挿入する位置は length() メソッドの戻り値と等しいか小さくなければなりません。
offset - 文字列を挿入する文字列バッファ内の位置を渡します。value - 文字列バッファへ追加する double 値を渡します。
StringBuffer クラスへの参照オブジェクトを返します。
StringIndexOutOfBoundsException - offset が length() メソッドの戻り値よりも大きい場合に throw します。String.valueOf(double)
|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
| 公式仕様書原文の著作権表記等(※): Mobile Information Device Profile Specification ("Specification") Version: 2.0 Status: FCS Release: November 5, 2002 Copyright 2002 Sun Microsystems, Inc. and Motorola, Inc. All rights reserved. | ※ただしこの API リファレンスは英語仕様を一語一句正確に翻訳したものではなく、一度私が英語の仕様原文を読んだ上で元の意味と構造をなるべく保つように書き起こしたものです。このため一部は完全に異なる説明となっています。また CLDC 1.1 部分は同仕様の範囲外であるため、まったく参考とはしていません。 ※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。 |
