|
Unofficial "CLDC 1.0 + MIDP 1.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.lang.StringBuffer
public final class StringBuffer
書き換え可能な文字列を表現するクラスで、書き換えの行われない文字列を取り扱うことを前提とした String
クラスのパートナー的なクラスです。
このクラスに保持される文字列は、長さおよび内容を関連するメソッドを通じて自由に変更することができます。
文字列の内容は主に追加を行う append
メソッドと途中に挿入する insert
メソッドで操作を行います。
この二つのメソッドは型に応じた複数のメソッドをオーバーライド定義しており、任意の型のオブジェクトにって文字列を操作することができます。
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(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 |
コンストラクタの詳細 |
---|
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
内の toString
|
Unofficial "CLDC 1.0 + MIDP 1.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |