JavaTM 2 Platform
Standard Ed. 5.0

java.lang
クラス StringBuffer

java.lang.Object
  上位を拡張 java.lang.StringBuffer
すべての実装されたインタフェース:
Serializable, Appendable, CharSequence

public final class StringBuffer
extends Object
implements Serializable, CharSequence

スレッドセーフな可変の文字列。文字列バッファは String と似ていますが、変更できる点が異なります。文字列バッファには常に文字列が格納されていますが、文字列の長さと内容は特定のメソッドの呼び出しにより変更できます。

文字列バッファは複数のスレッドによって安全に使用することができます。メソッドは必要に応じて同期化され、特定のインスタンスでのすべてのオペレーションが、関連のある個々のスレッドによって行われるメソッドの呼び出しの順序と一致する連続した順序で発生するように動作します。

StringBuffer の基本的なオペレーションには、append メソッドおよび insert メソッドがあり、これらのメソッドはどんな種類のデータも受け取ることができるようにオーバーロードされています。メソッドはそれぞれ与えられたデータを効率的に文字列に変換し、文字列中の文字を文字列バッファに追加または挿入します。append メソッドは常に、バッファの末尾に与えられた文字を追加し、insert メソッドは指定された位置に文字を追加します。

たとえば、z を、現在「start」を含む文字列バッファオブジェクトと見なす場合、z.append("le") は文字列バッファの内容が「startle」になるように変更するのに対して、z.insert(4, "le") というメソッド呼び出しは文字列バッファの内容が「starlet」になるように作用します。

一般に、sb が StringBuffer のインスタンスを参照している場合、sb.append(x)sb.insert(sb.length(), x) と同じ結果になります。

処理にソースシーケンスが関連する場合 (ソースシーケンスからの追加や挿入など)、このクラスは、その処理を実行している文字列バッファとだけ同期化し、ソースとは同期化しません。

各文字列バッファには容量があります。文字列バッファに含まれる文字列の長さが容量を超過しないかぎり、新しい内部バッファ配列を割り当てる必要はありません。内部バッファがオーバーフローする場合、自動的に容量が増加します。 JDK 5 以降、このクラスは単一のスレッド StringBuilder により使用されるよう設計された等価のクラスで補足されています。StringBuilder クラスは、このクラスと同じ処理をすべてサポートしながらも高速であり、同期を実行しないので、通常はこのクラスに優先して使用される必要があります。

導入されたバージョン:
JDK1.0
関連項目:
StringBuilder, String, 直列化された形式

コンストラクタの概要
StringBuffer()
          文字を持たず、初期容量が 16 文字である文字列バッファを構築します。
StringBuffer(CharSequence seq)
          指定された CharSequence 引数と同じ文字を含む文字列バッファを構築します。
StringBuffer(int capacity)
          文字を持たず、指定された初期容量を持つ文字列バッファを構築します。
StringBuffer(String str)
          指定された文字列の内容に初期化された文字列バッファを構築します。
 
メソッドの概要
 StringBuffer append(boolean b)
          boolean 引数の文字列表現をこのシーケンスに追加します。
 StringBuffer append(char c)
          char 引数の文字列表現をこのシーケンスに追加します。
 StringBuffer append(char[] str)
          char 配列引数の文字列表現をこのシーケンスに追加します。
 StringBuffer append(char[] str, int offset, int len)
          char 配列引数の部分配列の文字列表現をこのシーケンスに追加します。
 StringBuffer append(CharSequence s)
          指定された CharSequence をこのシーケンスに追加します。
 StringBuffer append(CharSequence s, int start, int end)
          指定された CharSequence のサブシーケンスをこのシーケンスに追加します。
 StringBuffer append(double d)
          double 引数の文字列表現をこのシーケンスに追加します。
 StringBuffer append(float f)
          float 引数の文字列表現をこのシーケンスに追加します。
 StringBuffer append(int i)
          int 引数の文字列表現をこのシーケンスに追加します。
 StringBuffer append(long lng)
          long 引数の文字列表現をこのシーケンスに追加します。
 StringBuffer append(Object obj)
          Object 引数の文字列表現をこのシーケンスに追加します。
 StringBuffer append(String str)
          指定された文字列をこの文字シーケンスに追加します。
 StringBuffer append(StringBuffer sb)
          指定された StringBuffer をこのシーケンスに追加します。
 StringBuffer appendCodePoint(int codePoint)
          codePoint 引数の文字列表現をこのシーケンスに追加します。
 int capacity()
          現在の容量を返します。
 char charAt(int index)
          指定されたインデックス位置にある char 値を返します。
 int codePointAt(int index)
          指定されたインデックス位置の文字 (Unicode コードポイント) を返します。
 int codePointBefore(int index)
          指定されたインデックスの前の文字 (Unicode コードポイント) を返します。
 int codePointCount(int beginIndex, int endIndex)
          このシーケンスの指定されたテキスト範囲の Unicode コードポイントの数を返します。
 StringBuffer delete(int start, int end)
          このシーケンスの部分文字列内の文字をすべて削除します。
 StringBuffer deleteCharAt(int index)
          このシーケンス内の指定された位置にある char を削除します。
 void ensureCapacity(int minimumCapacity)
          容量が指定された最小値以上になることを保証します。
 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
          このシーケンスから、コピー先の文字配列 dst に文字をコピーします。
 int indexOf(String str)
          この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。
 int indexOf(String str, int fromIndex)
          指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。
 StringBuffer insert(int offset, boolean b)
          boolean 引数の文字列表現をこのシーケンスに挿入します。
 StringBuffer insert(int offset, char c)
          char 引数の文字列表現をこのシーケンスに挿入します。
 StringBuffer insert(int offset, char[] str)
          char 配列引数の文字列表現をこのシーケンスに挿入します。
 StringBuffer insert(int index, char[] str, int offset, int len)
          str 配列引数の部分配列の文字列表現をこのシーケンスに挿入します。
 StringBuffer insert(int dstOffset, CharSequence s)
          指定された CharSequence をこのシーケンスに挿入します。
 StringBuffer insert(int dstOffset, CharSequence s, int start, int end)
          指定された CharSequence のサブシーケンスをこのシーケンスに挿入します。
 StringBuffer insert(int offset, double d)
          double 引数の文字列表現をこのシーケンスに挿入します。
 StringBuffer insert(int offset, float f)
          float 引数の文字列表現をこのシーケンスに挿入します。
 StringBuffer insert(int offset, int i)
          2 番目の int 引数の文字列表現をこのシーケンスに挿入します。
 StringBuffer insert(int offset, long l)
          long 引数の文字列表現をこのシーケンスに挿入します。
 StringBuffer insert(int offset, Object obj)
          Object 引数の文字列表現をこの文字シーケンスに挿入します。
 StringBuffer insert(int offset, String str)
          文字列をこの文字シーケンスに挿入します。
 int lastIndexOf(String str)
          この文字列内で、指定された部分文字列が一番右に出現する位置のインデックスを返します。
 int lastIndexOf(String str, int fromIndex)
          この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。
 int length()
          長さ (文字数) を返します。
 int offsetByCodePoints(int index, int codePointOffset)
          codePointOffset コードポイントによって指定された index からのオフセットであるこのシーケンス内のインデックスを返します。
 StringBuffer replace(int start, int end, String str)
          このシーケンスの部分文字列の文字を、指定された String の文字に置換します。
 StringBuffer reverse()
          この文字シーケンスが、逆の並び順のシーケンスに置換されます。
 void setCharAt(int index, char ch)
          指定されたインデックス位置の文字が ch になるように設定します。
 void setLength(int newLength)
          この文字シーケンスの長さを設定します。
 CharSequence subSequence(int start, int end)
          このシーケンスのサブシーケンスである新規文字シーケンスを返します。
 String substring(int start)
          この文字シーケンスに現在格納されている文字列の一部が入った新しい String を返します。
 String substring(int start, int end)
          このシーケンスに現在格納されている文字列の一部が入った新しい String を返します。
 String toString()
          このシーケンスのデータを表現する文字列を返します。
 void trimToSize()
          文字シーケンスに使用される記憶領域を減らそうとします。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

StringBuffer

public StringBuffer()
文字を持たず、初期容量が 16 文字である文字列バッファを構築します。


StringBuffer

public StringBuffer(int capacity)
文字を持たず、指定された初期容量を持つ文字列バッファを構築します。

パラメータ:
capacity - 初期容量
例外:
NegativeArraySizeException - 引数 capacity0 未満の場合

StringBuffer

public StringBuffer(String str)
指定された文字列の内容に初期化された文字列バッファを構築します。文字列バッファの初期容量は、16 に文字列引数の長さを加えたものです。

パラメータ:
str - バッファの初期内容
例外:
NullPointerException - strnull の場合

StringBuffer

public StringBuffer(CharSequence seq)
指定された CharSequence 引数と同じ文字を含む文字列バッファを構築します。文字列バッファの初期容量は、16CharSequence 引数の長さを加えたものです。

指定された CharSequence の長さがゼロ以下の場合、容量 16 の空のバッファが返されます。

パラメータ:
seq - コピー対象のシーケンス
例外:
NullPointerException - seqnull の場合
導入されたバージョン:
1.5
メソッドの詳細

length

public int length()
長さ (文字数) を返します。

定義:
インタフェース CharSequence 内の length
戻り値:
このオブジェクトによって現在表現されている文字シーケンスの長さ

capacity

public int capacity()
現在の容量を返します。この容量は、新しく挿入される文字で利用可能な量を表します。それを超えると割り当てが発生します。

戻り値:
現在の容量

ensureCapacity

public void ensureCapacity(int minimumCapacity)
容量が指定された最小値以上になることを保証します。この現在の容量が引数より小さい場合は、より容量の大きい新しい内部配列が割り当てられます。新しい容量は次の 2 つのうちの大きいほうです。 minimumCapacity 引数が正の値でない場合、このメソッドは何も行わずに復帰します。

パラメータ:
minimumCapacity - 保証したい最小容量

trimToSize

public void trimToSize()
文字シーケンスに使用される記憶領域を減らそうとします。 バッファが現在の文字のシーケンスに必要な長さよりも長い場合は容量が効率的になるようにサイズを変更します。このメソッドを呼び出すと、capacity() メソッドへの後続の呼び出しで返される値に影響する可能性があります。

導入されたバージョン:
1.5

setLength

public void setLength(int newLength)
この文字シーケンスの長さを設定します。 このシーケンスは長さが引数によって指定された新しい文字シーケンスを表すように変更されます。 newLength より小さい、負でないすべての k では、新しい文字シーケンス内のインデックス k の位置にある文字は、k が以前の文字シーケンスの長さより小さい場合は、以前の文字シーケンス内のインデックス k の位置にある文字に等しくなります。 そうでない場合は、null 文字 '\u0000' になります。 つまり、newLength 引数が現在の長さより小さい場合は newLength 引数によって指定された長さに変更されます。

newLength 引数が現在の長さと等しいか大きい場合は、長さが newLength 引数になるように、文字列バッファに必要なだけの null 文字 ('\u0000') が追加されます。

newLength 引数は 0 以上でなければなりません。

パラメータ:
newLength - 新しい長さ
例外:
IndexOutOfBoundsException - newLength 引数が負の値の場合
関連項目:
length()

charAt

public char charAt(int index)
指定されたインデックス位置にある char 値を返します。 配列のインデックス付けの場合と同じように、シーケンスの最初の char 値のインデックスは 0、次の文字のインデックスは 1 と続きます。

インデックス引数は 0 以上かつシーケンスの長さより小さくなければなりません。

インデックスで指定された char 値がサロゲートの場合、サロゲート値が返されます。

定義:
インタフェース CharSequence 内の charAt
パラメータ:
index - char 値のインデックス
戻り値:
指定されたインデックス位置にある char 値。
例外:
IndexOutOfBoundsException - index が負の値、または文字列の長さ以上である場合
関連項目:
length()

codePointAt

public int codePointAt(int index)
指定されたインデックス位置の文字 (Unicode コードポイント) を返します。 インデックスは char 値 (Unicode コード単位) を参照し、範囲は 0length() - 1 です。

指定されたインデックスで指定された char 値が上位サロゲート範囲にある場合、それに続くインデックスは、このシーケンスの長さ未満です。 また、以降のインデックスの char 値が下位サロゲート範囲にある場合、このサロゲートペアに対応する補助コードポイントが返されます。 そうでない場合、指定されたインデックスにある char 値が返されます。

パラメータ:
index - char 値のインデックス
戻り値:
指定された index にある文字のコードポイント値
導入されたバージョン:
1.5

codePointBefore

public int codePointBefore(int index)
指定されたインデックスの前の文字 (Unicode コードポイント) を返します。 インデックスは char 値 (Unicode コード単位) を参照し、範囲は 1length() です。

(index - 1) 位置の char 値が下位サロゲートの範囲にある場合、(index - 2) が負ではない場合、(index - 2) 位置の char 値が上位サロゲートの範囲にある場合、サロゲートペアの補助コードポイント値が返されます。 index - 1 位置の char 値がペアになっていない下位または上位サロゲートの場合、サロゲート値が返されます。

パラメータ:
index - 返されるコードポイントに続くインデックス
戻り値:
指定されたインデックスの前にある Unicode コードポイント値
導入されたバージョン:
1.5

codePointCount

public int codePointCount(int beginIndex,
                          int endIndex)
このシーケンスの指定されたテキスト範囲の Unicode コードポイントの数を返します。 テキスト範囲は、指定された beginIndex からインデックス endIndex - 1 の位置の char までです。 したがって、テキスト範囲の長さ (char 間) は、endIndex-beginIndex です。 このシーケンス内でペアになっていないサロゲートは、それぞれ 1 つのコードポイントとして数えられます。

パラメータ:
beginIndex - テキスト範囲内の最初の char へのインデックス
endIndex - テキスト範囲内の最後の char の後ろのインデックス
戻り値:
指定されたテキスト範囲内の Unicode コードポイントの数
導入されたバージョン:
1.5

offsetByCodePoints

public int offsetByCodePoints(int index,
                              int codePointOffset)
codePointOffset コードポイントによって指定された index からのオフセットである、このシーケンス内のインデックスを返します。 indexcodePointOffset によって指定されたテキスト範囲内でペアになっていないサロゲートは、それぞれ 1 つのコードポイントとして数えられます。

パラメータ:
index - オフセットへのインデックス
codePointOffset - コードポイント内のオフセット
戻り値:
このシーケンス内のインデックス
導入されたバージョン:
1.5

getChars

public void getChars(int srcBegin,
                     int srcEnd,
                     char[] dst,
                     int dstBegin)
このシーケンスから、コピー先の文字配列 dst に文字をコピーします。 コピーされる最初の文字のインデックスは srcBegin、コピーされる最後の文字のインデックスは srcEnd-1 です。 したがって、コピーされる文字数は srcEnd-srcBegin となります。 文字は dstの部分配列にコピーされます。 始点のインデックスは dstBegin で、終点のインデックスは次のようになります。

 dstbegin + (srcEnd-srcBegin) - 1
 

パラメータ:
srcBegin - オフセットのコピーの開始
srcEnd - オフセットのコピーの終わり
dst - データをコピーする配列
dstBegin - dst へのオフセット
例外:
NullPointerException - dstnull の場合
IndexOutOfBoundsException - 次のどれかに当てはまる場合
  • srcBegin が負
  • dstBegin が負
  • srcBegin 引数が srcEnd 引数より大きい
  • srcEndthis.length() より大きい
  • dstBegin+srcEnd-srcBegindst.length より大きい

setCharAt

public void setCharAt(int index,
                      char ch)
指定されたインデックス位置の文字が ch になるように設定します。 このシーケンスは、index の位置の文字が ch であることを除き、以前の文字シーケンスと同一の文字シーケンスを表現するように変更されます。

index 引数は 0 以上で、このシーケンスの長さ未満でなければなりません。

パラメータ:
index - 変更対象の文字のインデックス
ch - 新しい文字
例外:
IndexOutOfBoundsException - index が負の値の場合、あるいは length() に等しいかこれより大きい場合
関連項目:
length()

append

public StringBuffer append(Object obj)
Object 引数の文字列表現を追加します。

引数は、String.valueOf メソッドによって変換される場合と同じように文字列に変換され、その文字列の文字がこのシーケンスに追加されます。

パラメータ:
obj - Object
戻り値:
このオブジェクトへの参照
関連項目:
String.valueOf(java.lang.Object), append(java.lang.String)

append

public StringBuffer append(String str)
指定された文字列をこの文字シーケンスに追加します。

String 引数の文字が、順番にこのシーケンスに追加されます。 その結果、引数の長さの分だけこのシーケンスの長さが増えます。 strnull の場合、"null" の 4 文字が追加されます。

append メソッドの実行の直前に文字シーケンスに格納されていた文字列の長さが n で、kn より小さい場合、新しい文字シーケンス内のインデックス k にある文字は以前の文字シーケンス内のインデックス k にある文字に等しくなります。 そうでない場合は、引数 str 内のインデックス k-n にある文字に等しくなります。

パラメータ:
str - 文字列
戻り値:
このオブジェクトへの参照

append

public StringBuffer append(StringBuffer sb)
指定された StringBuffer をこのシーケンスに追加します。

StringBuffer 引数の文字が、順番にこの StringBuffer の内容に追加されます。その結果、引数の長さの分だけこの StringBuffer の長さが増えます。sbnull の場合、「null」という 4 文字がこの StringBuffer に追加されます。

append メソッドの実行の直前に StringBuffer に格納されていた以前の文字列の長さが n の場合、新しい文字列内のインデックス k にある文字は、kn より小さいとき、以前の文字列内のインデックス k にある文字に等しくなります。そうでない場合は、引数 sb 内のインデックス k-n にある文字に等しくなります。

このメソッドは、this (追加先) オブジェクトと同期しますが、ソース (sb) とは同期しません。

パラメータ:
sb - 追加する StringBuffer
戻り値:
このオブジェクトへの参照
導入されたバージョン:
1.4

append

public StringBuffer append(CharSequence s)
指定された CharSequence をこのシーケンスに追加します。

CharSequence 引数の文字は、順番に追加され、引数の長さの分だけこのシーケンスの長さが増えます。

このメソッドの結果は、this.append(s, 0, s.length()); の呼び出しとまったく同じです。

このメソッドは、この (追加先) オブジェクトと同期しますが、ソース (s) とは同期しません。

snull の場合は、「null」という 4 文字が追加されます。

定義:
インタフェース Appendable 内の append
パラメータ:
s - 追加される CharSequence
戻り値:
このオブジェクトへの参照
導入されたバージョン:
1.5

append

public StringBuffer append(CharSequence s,
                           int start,
                           int end)
指定された CharSequence のサブシーケンスをこのシーケンスに追加します。

引数 s の文字はインデックス start から始まってインデックス end (この値を含まない) まで順番にこのシーケンスの内容に追加されます。 このシーケンスの長さは end - start の値分長くなります。

append メソッドの実行の直前に文字シーケンスに格納されていた文字列の長さが n で、k が n より小さい場合、この文字シーケンス内のインデックス k にある文字はこのシーケンス内のインデックス k にある文字に等しくなります。 そうでない場合は、引数 s にあるインデックス k+start-n にある文字に等しくなります。

snull の場合、このメソッドは s パラメータが "null" の 4 文字を含むシーケンスだったとして文字を追加します。

定義:
インタフェース Appendable 内の append
パラメータ:
s - 追加するシーケンス
start - 追加されるサブシーケンスの開始インデックス
end - 追加されるサブシーケンスの終了インデックス
戻り値:
このオブジェクトへの参照
例外:
IndexOutOfBoundsException - start または end が負、または startend よりも長い、または ends.length() よりも長い場合
導入されたバージョン:
1.5

append

public StringBuffer append(char[] str)
char 配列引数の文字列表現をこのシーケンスに追加します。

配列引数の文字は、このシーケンスの内容に順番に追加されます。 このシーケンスの長さは引数の長さの分だけ増加します。

最終的には、String.valueOf(char[]) メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに append された場合とまったく同じ結果になります。

パラメータ:
str - 追加される文字
戻り値:
オブジェクトへの参照

append

public StringBuffer append(char[] str,
                           int offset,
                           int len)
char 配列引数の部分配列の文字列表現をこのシーケンスに追加します。

文字配列 str の文字は、インデックス offset の位置を始点として、このシーケンスに順番に追加されます。 このシーケンスの長さは len の値の分だけ増加します。

最終的には、String.valueOf(char[],int,int) メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに append された場合とまったく同じ結果になります。

パラメータ:
str - 追加される文字
offset - 最初の char のインデックス
len - 追加する char
戻り値:
オブジェクトへの参照

append

public StringBuffer append(boolean b)
boolean 引数の文字列表現をこのシーケンスに追加します。

引数は、String.valueOf メソッドによって変換される場合と同じように文字列に変換され、その文字列の文字がこのシーケンスに追加されます。

パラメータ:
b - boolean
戻り値:
このオブジェクトへの参照
関連項目:
String.valueOf(boolean), append(java.lang.String)

append

public StringBuffer append(char c)
char 引数の文字列表現をこのシーケンスに追加します。

引数はこのシーケンスに追加されます。 この文字列バッファの長さは 1 だけ増加します。

最終的には、String.valueOf(char) メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに append された場合とまったく同じ結果になります。

定義:
インタフェース Appendable 内の append
パラメータ:
c - char
戻り値:
このオブジェクトへの参照

append

public StringBuffer append(int i)
int 引数の文字列表現をこのシーケンスに追加します。

引数は、String.valueOf メソッドによって変換される場合と同じように文字列に変換され、その文字列の文字がこのシーケンスに追加されます。

パラメータ:
i - int
戻り値:
このオブジェクトへの参照
関連項目:
String.valueOf(int), append(java.lang.String)

appendCodePoint

public StringBuffer appendCodePoint(int codePoint)
codePoint 引数の文字列表現をこのシーケンスに追加します。

この引数はこのシーケンスの内容に追加されます。 このシーケンスの長さは Character.charCount(codePoint) の分長くなります。

最終的には、Character.toChars(int) メソッドによって引数が char 配列に変換されてから、その配列の文字がこの文字シーケンスに append された場合とまったく同じ結果になります。

パラメータ:
codePoint - Unicode コードポイント
戻り値:
このオブジェクトへの参照
導入されたバージョン:
1.5

append

public StringBuffer append(long lng)
long 引数の文字列表現をこのシーケンスに追加します。

引数は、String.valueOf メソッドによって変換される場合と同じように文字列に変換され、その文字列の文字がこのシーケンスに追加されます。

パラメータ:
lng - long
戻り値:
このオブジェクトへの参照
関連項目:
String.valueOf(long), append(java.lang.String)

append

public StringBuffer append(float f)
float 引数の文字列表現をこのシーケンスに追加します。

引数は、String.valueOf メソッドによって変換される場合と同じように文字列に変換され、その文字列の文字がこの文字シーケンスに追加されます。

パラメータ:
f - float
戻り値:
このオブジェクトへの参照
関連項目:
String.valueOf(float), append(java.lang.String)

append

public StringBuffer append(double d)
double 引数の文字列表現をこのシーケンスに追加します。

引数は、String.valueOf メソッドによって変換される場合と同じように文字列に変換され、その文字列の文字がこのシーケンスに追加されます。

パラメータ:
d - double
戻り値:
このオブジェクトへの参照
関連項目:
String.valueOf(double), append(java.lang.String)

delete

public StringBuffer delete(int start,
                           int end)
このシーケンスの部分文字列内の文字をすべて削除します。 部分文字列は、指定された start から始まり、インデックス end - 1 の位置にある文字まで、あるいはこれに該当する文字がない場合はシーケンスの最後までになります。 startend が等しい場合、何も変更はありません。

パラメータ:
start - 開始インデックス (この値を含む)
end - 終了インデックス (この値を含まない)
戻り値:
このオブジェクト
例外:
StringIndexOutOfBoundsException - start が負の値の場合、length() より大きい場合、あるいは endより大きい場合
導入されたバージョン:
1.2

deleteCharAt

public StringBuffer deleteCharAt(int index)
このシーケンス内の指定された位置にある文字を削除します。このシーケンスの長さは char 分短くなります。

注意: 任意のインデックスで文字が補助文字の場合、このメソッドは文字全体を削除しません。 補助文字の正確な処理が必要な場合は、Character.charCount(thisSequence.codePointAt(index)) を呼び出して削除する char の数を決め、thisSequence をこのシーケンスとしてください。

パラメータ:
index - 削除される char のインデックス
戻り値:
このオブジェクト
例外:
StringIndexOutOfBoundsException - index が負の値の場合、あるいは length() に等しいかこれより大きい場合
導入されたバージョン:
1.2

replace

public StringBuffer replace(int start,
                            int end,
                            String str)
このシーケンスの部分文字列の文字を、指定された String の文字に置換します。 部分文字列は、指定された start から始まり、インデックス end - 1 の位置にある文字まで、あるいはこれに該当する文字がない場合はシーケンスの最後までになります。 まず、部分文字列の文字が削除されてから、指定された Stringstart に挿入されます。シーケンスは、指定された String が収まるように、必要に応じて長くなります。

パラメータ:
start - 開始インデックス (この値を含む)
end - 終了インデックス (この値を含まない)
str - 以前の内容を置換する String
戻り値:
このオブジェクト
例外:
StringIndexOutOfBoundsException - start が負の値の場合、length() より大きい場合、あるいは end より大きい場合
導入されたバージョン:
1.2

substring

public String substring(int start)
文字シーケンスに現在格納されている文字列の一部が入った新しい String を返します。 部分文字列は、指定されたインデックスから始まり、このシーケンスの最後までになります。

パラメータ:
start - 開始インデックス (この値を含む)
戻り値:
新しい文字列
例外:
StringIndexOutOfBoundsException - start が 0 より小さい場合、あるいはこのオブジェクトの長さより大きい場合
導入されたバージョン:
1.2

subSequence

public CharSequence subSequence(int start,
                                int end)
このシーケンスのサブシーケンスである新規文字シーケンスを返します。

次のフォームのメソッド呼び出しは、

 sb.subSequence(begin, end)
次の呼び出しと正確に同じ動作になります。
 sb.substring(begin, end)
このメソッドにより、このクラスが CharSequence インタフェースを実装可能になります。

定義:
インタフェース CharSequence 内の subSequence
パラメータ:
start - 開始インデックス (この値を含む)
end - 終了インデックス (この値を含まない)
戻り値:
指定されたサブシーケンス
例外:
IndexOutOfBoundsException - start または end が負の値の場合、endlength()より大きい場合、あるいは startend より大きい場合
導入されたバージョン:
1.4

substring

public String substring(int start,
                        int end)
このシーケンスに現在格納されている文字列の一部が入った新しい String を返します。 部分文字列は、指定された start から始まり、インデックス end - 1 にある文字までになります。

パラメータ:
start - 開始インデックス (この値を含む)
end - 終了インデックス (この値を含まない)
戻り値:
新しい文字列
例外:
StringIndexOutOfBoundsException - start または end が負の値の場合、length() より大きい場合、あるいは startendより大きい場合
導入されたバージョン:
1.2

insert

public StringBuffer insert(int index,
                           char[] str,
                           int offset,
                           int len)
str 配列引数の部分配列の文字列表現をこのシーケンスに挿入します。 部分配列は指定された offset で始まり、len char に指定された文字数分の長さです。 部分配列の文字は、このシーケンスの index で示される位置に挿入されます。 このシーケンスの長さは len char 分だけ増加します。

パラメータ:
index - 部分配列を挿入する位置
str - char 配列
offset - 挿入される部分配列の最初の char のインデックス
len - 挿入される部分配列の char
戻り値:
このオブジェクト
例外:
StringIndexOutOfBoundsException - index が負の値または length() より大きい場合、offsetlen が負の値の場合、あるいは (offset+len)str.length より大きい場合
導入されたバージョン:
1.2

insert

public StringBuffer insert(int offset,
                           Object obj)
Object 引数の文字列表現をこの文字シーケンスに挿入します。

2 番目の引数が String.valueOf メソッドの場合と同じように文字列に変換され、その文字列の文字がこのシーケンスの指定されたオフセットに挿入されます。

offset 引数は 0 以上で、このシーケンスの長さに等しいかこれより小さくなければなりません。

パラメータ:
offset - オフセット
obj - Object
戻り値:
このオブジェクトへの参照
例外:
StringIndexOutOfBoundsException - オフセットが無効な場合
関連項目:
String.valueOf(java.lang.Object), insert(int, java.lang.String), length()

insert

public StringBuffer insert(int offset,
                           String str)
文字列をこの文字シーケンスに挿入します。

String 引数の文字が、このシーケンスの指定されたオフセット位置に順番に挿入されます。 その位置にあった文字は移動され、引数の長さの分だけこのシーケンスの長さが増加します。 strnull の場合は、"null" の 4 文字がこのシーケンスに挿入されます。

新しい文字シーケンスのインデックス k の位置にある文字は、次の文字に等しくなります。

offset 引数は 0 以上で、この文字列バッファの長さに等しいかこれより小さくなければなりません。

パラメータ:
offset - オフセット
str - 文字列
戻り値:
このオブジェクトへの参照
例外:
StringIndexOutOfBoundsException - オフセットが無効な場合
関連項目:
length()

insert

public StringBuffer insert(int offset,
                           char[] str)
char 配列引数の文字列表現をこのシーケンスに挿入します。

配列引数の文字は、このシーケンスの offset で示される位置に挿入されます。 このシーケンスの長さは引数の長さの分だけ増加します。

最終的には、String.valueOf(char[]) メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスの offset で示される位置に insert された場合とまったく同じ結果になります。

パラメータ:
offset - オフセット
str - 文字配列
戻り値:
このオブジェクトへの参照
例外:
StringIndexOutOfBoundsException - オフセットが無効な場合

insert

public StringBuffer insert(int dstOffset,
                           CharSequence s)
指定された CharSequence をこのシーケンスに挿入します。

CharSequence 引数の文字はオフセットで指定されたシーケンスに順番に挿入され、その位置にあった文字を動かしてこのシーケンスを引数 s の長さだけ長くします。

このメソッドの結果は、このオブジェクトの insert(dstOffset, s, 0, s.length()) メソッドを呼び出した場合と全く同じです。

snullの場合、"null" の 4 文字がこのシーケンスに挿入されます。

パラメータ:
dstOffset - オフセット
s - 挿入されるシーケンス
戻り値:
このオブジェクトへの参照
例外:
IndexOutOfBoundsException - オフセットが無効の場合
導入されたバージョン:
1.5

insert

public StringBuffer insert(int dstOffset,
                           CharSequence s,
                           int start,
                           int end)
指定された CharSequence のサブシーケンスをこのシーケンスに挿入します。

start および end で指定された引数 s のサブシーケンスは順番にこのシーケンスの指定された目的オフセットに挿入されます。 その位置にあった文字を動かしシーケンスの長さは end - start の分長くなります。

このシーケンスのインデックス k の位置にある文字は、次の文字に等しくなります。

dstOffset 引数は 0 以上で、このシーケンスの長さに等しいかこれより小さくなければなりません。

start 引数は負ではなく、end より小さくなければなりません。

end 引数は start 以上で、s の長さに等しいかこれより小さくなければなりません。

snull の場合、このメソッドは s パラメータが "null" の 4 文字を含むシーケンスだったとして文字を挿入します。

パラメータ:
dstOffset - このシーケンスのオフセット
s - 挿入されるシーケンス
start - 挿入されるサブシーケンスの開始インデックス
end - 挿入されるサブシーケンスの終了インデックス
戻り値:
このオブジェクトへの参照
例外:
IndexOutOfBoundsException - dstOffset が負、または this.length() より大きい、または start または end が負、または startend より大きい、または ends.length() より大きい場合
導入されたバージョン:
1.5

insert

public StringBuffer insert(int offset,
                           boolean b)
boolean 引数の文字表現をこのシーケンスに挿入します。

2 番目の引数が、メソッド String.valueOf で変換されるように変換され、このシーケンスの offset で指定される位置に挿入されます。

offset 引数は 0 以上で、このシーケンスの長さに等しいかこれより小さくなければなりません。

パラメータ:
offset - オフセット
b - boolean
戻り値:
このオブジェクトへの参照
例外:
StringIndexOutOfBoundsException - オフセットが無効な場合
関連項目:
String.valueOf(boolean), insert(int, java.lang.String), length()

insert

public StringBuffer insert(int offset,
                           char c)
char 引数の文字列表現をこのシーケンスに挿入します。

2 番目の引数が、このシーケンスの offset で指定される位置に挿入されます。このシーケンスの長さが 1 文字分増加します。

最終的には、 String.valueOf(char) メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスの offset で指定される位置に insert された場合とまったく同じ結果になります。

offset 引数は 0 以上で、このシーケンスの長さに等しいかこれより小さくなければなりません。

パラメータ:
offset - オフセット
c - char
戻り値:
このオブジェクトへの参照
例外:
IndexOutOfBoundsException - オフセットが無効な場合
関連項目:
length()

insert

public StringBuffer insert(int offset,
                           int i)
2 番目の int 引数の文字列表現をこのシーケンスに挿入します。

2 番目の引数が String.valueOf メソッドの場合と同じように文字列に変換され、その文字列の文字がこのシーケンスの指定されたオフセットに挿入されます。

offset 引数は 0 以上で、このシーケンスの長さに等しいかこれより小さくなければなりません。

パラメータ:
offset - オフセット
i - int
戻り値:
このオブジェクトへの参照
例外:
StringIndexOutOfBoundsException - オフセットが無効な場合
関連項目:
String.valueOf(int), insert(int, java.lang.String), length()

insert

public StringBuffer insert(int offset,
                           long l)
long 引数の文字列表現をこのシーケンスに挿入します。

2 番目の引数が String.valueOf メソッドの場合と同じように文字列に変換され、その文字列の文字がこのシーケンスの offset で指定された位置に挿入されます。

offset 引数は 0 以上で、このシーケンスの長さに等しいかこれより小さくなければなりません。

パラメータ:
offset - オフセット
l - long
戻り値:
このオブジェクトへの参照
例外:
StringIndexOutOfBoundsException - オフセットが無効な場合
関連項目:
String.valueOf(long), insert(int, java.lang.String), length()

insert

public StringBuffer insert(int offset,
                           float f)
float 引数の文字列表現をこのシーケンスに挿入します。

2 番目の引数が String.valueOf メソッドの場合と同じように文字列に変換され、その文字列の文字がこのシーケンスの指定されたオフセットに挿入されます。

offset 引数は 0 以上で、このシーケンスの長さに等しいかこれより小さくなければなりません。

パラメータ:
offset - オフセット
f - float
戻り値:
このオブジェクトへの参照
例外:
StringIndexOutOfBoundsException - オフセットが無効な場合
関連項目:
String.valueOf(float), insert(int, java.lang.String), length()

insert

public StringBuffer insert(int offset,
                           double d)
double 引数の文字列表現をこのシーケンスに挿入します。

2 番目の引数が String.valueOf メソッドの場合と同じように文字列に変換され、その文字列の文字がこのシーケンスの指定されたオフセットに挿入されます。

offset 引数は 0 以上で、このシーケンスの長さに等しいかこれより小さくなければなりません。

パラメータ:
offset - オフセット
d - double
戻り値:
このオブジェクトへの参照
例外:
StringIndexOutOfBoundsException - オフセットが無効な場合
関連項目:
String.valueOf(double), insert(int, java.lang.String), length()

indexOf

public int indexOf(String str)
この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。返される整数は、
 this.toString().startsWith(str, k)
 
上の式が true となるような最小の k です。

パラメータ:
str - 任意の文字列
戻り値:
文字列引数がこのオブジェクト内の部分文字列である場合は、該当する最初の部分文字列の最初の文字のインデックス。部分文字列がない場合は -1
例外:
NullPointerException - strnull の場合
導入されたバージョン:
1.4

indexOf

public int indexOf(String str,
                   int fromIndex)
指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。返される整数は、次の最小値 k になります。
     k >= Math.min(fromIndex, str.length()) &&
                   this.toString().startsWith(str, k)
 
このような k の値が存在しない場合、-1 が返されます。

パラメータ:
str - 検索対象の部分文字列
fromIndex - 検索開始位置のインデックス
戻り値:
指定されたインデックスから検索を開始して、最初に指定された部分文字列が出現する、この文字列内のインデックス
例外:
NullPointerException - strnull の場合
導入されたバージョン:
1.4

lastIndexOf

public int lastIndexOf(String str)
この文字列内で、指定された部分文字列が一番右に出現する位置のインデックスを返します。空の文字列 "" の一番右に出現した位置が、this.length() と見なされます。返されるインデックスは、
 this.toString().startsWith(str, k)
 
上の式が true となるような最大の k です。

パラメータ:
str - 検索対象の部分文字列
戻り値:
文字列引数がこのオブジェクト内の部分文字列として 1 回以上出現する場合は、該当する最後の部分文字列の最初の文字のインデックス。部分文字列として出現しない場合は、-1
例外:
NullPointerException - strnull の場合
導入されたバージョン:
1.4

lastIndexOf

public int lastIndexOf(String str,
                       int fromIndex)
この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。返される整数は、以下に適合する最大値 k です。
     k <= Math.min(fromIndex, str.length()) &&
                   this.toString().startsWith(str, k)
 
このような k の値が存在しない場合、-1 が返されます。

パラメータ:
str - 検索対象の部分文字列
fromIndex - 検索開始位置のインデックス
戻り値:
この文字列内で、指定された部分文字列が最後に出現する位置のインデックス
例外:
NullPointerException - strnull の場合
導入されたバージョン:
1.4

reverse

public StringBuffer reverse()
この文字シーケンスが、逆の並び順のシーケンスに置換されます。 シーケンスにサロゲートペアが含まれる場合、これらのペアは 1 文字として扱われます。 つまり、上位-下位サロゲートの順番は逆になりません。 reverse メソッドの実行の前に文字シーケンスに格納されていた以前の文字列の長さ (char 値の長さではない) が n の場合、新しい文字シーケンス内のインデックス k にある文字は、以前の文字シーケンス内のインデックス n-k-1 の位置にあった文字に等しくなります。

reverse 操作を行う場合、ペアになっていない下位サロゲートおよび上位サロゲートが操作の前に作成される可能性があります。 たとえば、"\uDC00\uD800" を逆にすると、有効なサロゲートペアである "\uD800\uDC00" を作成します。

戻り値:
このオブジェクトへの参照
導入されたバージョン:
JDK1.0.2

toString

public String toString()
このシーケンスのデータを表現する文字列を返します。 新しい String オブジェクトを割り当て、現在このオブジェクトが表す文字シーケンスを含むように初期化します。 最後に、作成された String を返します。 この操作のあとにこのシーケンスを変更しても、String の内容には影響しません。

定義:
インタフェース CharSequence 内の toString
戻り値:
この文字シーケンスの文字列表現

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。