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)
と同じ結果になります。
オペレーションにソース・シーケンスが関連する場合(ソース・シーケンスからの追加や挿入など)、このクラスは、そのオペレーションを実行している文字列バッファとだけ同期し、ソースとは同期しません。コンストラクタあるいはappend
またはinsert
オペレーションにスレッド間で共有されるソース・シーケンスが渡される場合、StringBuffer
は複数のスレッドから並行して使用できるように作られていますが、呼出し元コードではオペレーションの処理中にそのソース・シーケンスの一貫した不変のビューが保持されるようにする必要があることに注意してください。これは、呼出し側でオペレーションの呼出し中にロックを保持するか、不変のソース・シーケンスを使用するか、またはスレッド間でソース・シーケンスを共有しないことで達成できる可能性があります。
各文字列バッファには容量があります。文字列バッファに含まれる文字列の長さが容量を超過しないかぎり、新しい内部バッファ配列を割り当てる必要はありません。内部バッファがオーバーフローする場合、自動的に容量が増加します。
ほかで指定がない場合、null
引数をコンストラクタまたはこのクラスのメソッドへ渡すと、NullPointerException
がスローされます。
JDK 5以降、このクラスは単一のスレッドStringBuilder
により使用されるよう設計された等価のクラスで補足されています。StringBuilder
クラスは、このクラスと同じ処理をすべてサポートしながらも高速であり、同期を実行しないので、通常はこのクラスに優先して使用される必要があります。
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)
このシーケンス内で、指定された
index からcodePointOffset コード・ポイント分だけオフセットされた位置のインデックスを返します。 |
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()
この文字シーケンスで使用されているストレージの低減を試みます。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
chars, codePoints
public StringBuffer()
public StringBuffer(int capacity)
capacity
- 初期容量。NegativeArraySizeException
- capacity
引数が0
未満の場合。public StringBuffer(String str)
16
に文字列引数の長さを加えたものです。str
- バッファの初期内容。public StringBuffer(CharSequence seq)
CharSequence
引数と同じ文字を含む文字列バッファを構築します。文字列バッファの初期容量は、16
にCharSequence
引数の長さを加えたものです。
指定されたCharSequence
の長さがゼロ以下の場合、容量16
の空のバッファが返されます。
seq
- コピー対象のシーケンス。public int length()
length
、インタフェース: CharSequence
public int capacity()
public void ensureCapacity(int minimumCapacity)
minimumCapacity
引数。
2
を加えた値。
minimumCapacity
引数が正の値でない場合、このメソッドは何も行わずに復帰します。このオブジェクトに対する後続の操作によって実際の容量がここで要求された量を下回る可能性があることに注意してください。minimumCapacity
保証したい最小容量。public void trimToSize()
capacity()
メソッドを呼び出した際に返される値に影響する可能性がありますが、必ずそうとはかぎりません。public void setLength(int newLength)
newLength
未満の負以外のすべてのインデックスkについて、kが古い文字シーケンスの長さ未満である場合、新しい文字シーケンス内のインデックスkの文字は、古いシーケンス内のインデックスkの文字と同じになります。それ以外の場合は、null文字'\u0000'
になります。つまり、newLength
引数が現在の長さ未満である場合、その長さが指定された長さに変更されます。
newLength
引数が現在の長さと等しいかそれより大きい場合は、長さがnewLength
引数になるように、十分な数のnull文字('\u0000'
)が追加されます。
newLength
引数は0
以上でなければなりません。
newLength
- 新しい長さIndexOutOfBoundsException
- newLength
引数が負の場合。length()
public char charAt(int index)
char
値を返します。配列のインデックスと同様に、最初のchar
値の位置がインデックス0
、次の文字の位置が1
、といった具合になります。
index引数は、0
以上で、このシーケンスの長さより小さくなければなりません。
インデックスで指定されたchar
値がサロゲートの場合、サロゲート値が返されます。
charAt
、インタフェース: CharSequence
index
- 目的のchar
値のインデックス。char
値。IndexOutOfBoundsException
- index
が負の値の場合、あるいはlength()
に等しいかこれより大きい場合。length()
public int codePointAt(int index)
char
値(Unicodeコード単位)を参照し、その範囲は0
- length()
- 1
になります。
指定されたインデックスで指定されたchar
値が上位サロゲート範囲にあり、それに続くインデックスがこのシーケンスの長さ未満で、以降のインデックスのchar
値が下位サロゲート範囲にある場合、このサロゲート・ペアに対応する補助コード・ポイントが返されます。それ以外の場合は、指定されたインデックスにあるchar
値が返されます。
index
- char
値へのインデックスindex
にある文字のコード・ポイント値public int codePointBefore(int index)
char
値(Unicodeコード単位)を参照し、その範囲は1
- length()
になります。
(index - 1)
のchar
値が下位サロゲート範囲に含まれており、(index - 2)
が負でなく、かつ(index - 2)
のchar
値が上位サロゲートに含まれている場合、そのサロゲート・ペアの補助コード・ポイント値が返されます。index - 1
のchar
値が、ペアになっていない下位サロゲートであるか、または上位サロゲートである場合、そのサロゲート値が返されます。
index
- 返すべきコード・ポイントの直後のインデックスpublic int codePointCount(int beginIndex, int endIndex)
beginIndex
からインデックスendIndex - 1
の位置のchar
までです。したがって、テキスト範囲の長さ(char
数)は、endIndex-beginIndex
になります。このシーケンス内でペアになっていないサロゲートは、それぞれ1つのコード・ポイントとして数えられます。beginIndex
- テキスト範囲内の最初のchar
へのインデックス。endIndex
- テキスト範囲内の最後のchar
の直後のインデックス。public int offsetByCodePoints(int index, int codePointOffset)
index
からcodePointOffset
コード・ポイント分だけオフセットされた位置のインデックスを返します。index
とcodePointOffset
で指定されるテキスト範囲内でペアになっていないサロゲートは、それぞれ1つのコード・ポイントとして数えられます。index
- オフセットされるインデックスcodePointOffset
- オフセット(コード・ポイント数)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
へのオフセット。IndexOutOfBoundsException
- 次のどれかに当てはまる場合。
srcBegin
が負である
dstBegin
が負である
srcBegin
引数がsrcEnd
引数より大きい
srcEnd
がthis.length()
より大きい
dstBegin+srcEnd-srcBegin
が次より大きい: dst.length
public void setCharAt(int index, char ch)
ch
に設定されます。このシーケンスは、位置index
の文字がch
である点を除き、以前の文字シーケンスと同一であるような、新しい文字シーケンスを表現するように変更されます。
index引数は、0
以上で、このシーケンスの長さより小さくなければなりません。
index
- 変更対象の文字のインデックス。ch
- 新しい文字。IndexOutOfBoundsException
- index
が負の値の場合、あるいはlength()
に等しいかこれより大きい場合。length()
public StringBuffer append(Object obj)
Object
引数の文字列表現を追加します。
最終的には、String.valueOf(Object)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
obj
- Object
。public StringBuffer append(String str)
String
引数の文字は、順番に追加され、引数の長さの分だけこのシーケンスの長さが増えます。str
がnull
の場合は、"null"
という4文字が追加されます。
append
メソッドの実行直前に、この文字シーケンスの長さがnであったとします。このとき、新しい文字シーケンス内のインデックスkの文字は、kがnより小さい場合は以前の文字シーケンス内のインデックスkの文字と等しくなり、それ以外の場合は引数str
内のインデックスk-nの文字と等しくなります。
str
- 文字列。public StringBuffer append(StringBuffer sb)
StringBuffer
をこのシーケンスに追加します。
StringBuffer
引数の文字がこのStringBuffer
の内容に順番に追加され、引数の長さの分だけこのStringBuffer
の長さが増えます。sb
がnull
の場合は、このStringBuffer
に"null"
という4文字が追加されます。
appendメソッドの実行の直前にStringBuffer
に格納されていた文字列の長さがn
であるとします。このとき、新しい文字シーケンス内のインデックスkの文字は、kがnより小さい場合は以前の文字シーケンス内のインデックスkの文字と等しくなり、それ以外の場合は引数sb
内のインデックスk-nの文字と等しくなります。
このメソッドは、this
(追加先オブジェクト)と同期しますが、ソース(sb
)とは同期しません。
sb
- 追加するStringBuffer
。public StringBuffer append(CharSequence s)
CharSequence
をこのシーケンスに追加します。
CharSequence
引数の文字は、順番に追加され、引数の長さの分だけこのシーケンスの長さが増えます。
このメソッドの結果は、this.append(s, 0, s.length()); の呼び出しとまったく同じです。
このメソッドは、this
(追加先オブジェクト)と同期しますが、ソース(s
)とは同期しません。
s
がnull
の場合は、"null"
という4文字が追加されます。
append
、インタフェース: Appendable
s
- 追加するCharSequence
。public StringBuffer append(CharSequence s, int start, int end)
CharSequence
のサブシーケンスをこのシーケンスに追加します。
引数s
のインデックスstart
からインデックスend
-1までの文字が、このシーケンスの内容に順番に追加されます。このシーケンスの長さはend - start
の値だけ増えます。
append
メソッドの実行直前に、この文字シーケンスの長さがnであったとします。このとき、この文字シーケンス内のインデックスkの文字は、kがnより小さい場合はこのシーケンス内のインデックスkの文字と等しくなり、それ以外の場合は引数s
内のインデックスk+start-nの文字と等しくなります。
s
がnull
の場合、このメソッドはsパラメータが"null"
という4文字を含むシーケンスであるかのように、文字を追加します。
append
、インタフェース: Appendable
s
- 追加されるシーケンス。start
- 追加される部分シーケンスの開始インデックス。end
- 追加される部分シーケンスの終了インデックス。IndexOutOfBoundsException
- start
が負の値の場合、start
がend
より大きい場合、またはend
がs.length()
より大きい場合public StringBuffer append(char[] str)
char
配列引数の文字列表現をこのシーケンスに追加します。
配列引数の文字がこのシーケンスの内容に順番に追加されます。このシーケンスの長さは、引数の長さの分だけ増えます。
最終的には、String.valueOf(char[])
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
str
- 追加される文字。public StringBuffer append(char[] str, int offset, int len)
char
配列引数の部分配列の文字列表現を、このシーケンスに追加します。
char
配列str
のインデックスoffset
以降の文字が、このシーケンスの内容に順番に追加されます。このシーケンスの長さはlen
の値だけ増えます。
最終的には、String.valueOf(char[],int,int)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
str
- 追加される文字。offset
- 追加される最初のchar
のインデックス。len
- 追加されるchar
の数。IndexOutOfBoundsException
- offset < 0
またはlen < 0
またはoffset+len> str.length
の場合public StringBuffer append(boolean b)
boolean
引数の文字列表現をシーケンスに追加します。
最終的には、String.valueOf(boolean)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
b
- boolean
。public StringBuffer append(char c)
char
引数の文字列表現をこのシーケンスに追加します。
引数がこのシーケンスの内容に追加されます。このシーケンスの長さは1
だけ増えます。
最終的には、String.valueOf(char)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
append
、インタフェース: Appendable
c
- char
。public StringBuffer append(int i)
int
引数の文字列表現をこのシーケンスに追加します。
最終的には、String.valueOf(int)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
i
- int
。public StringBuffer appendCodePoint(int codePoint)
codePoint
引数の文字列表現をこのシーケンスに追加します。
引数がこのシーケンスの内容に追加されます。このシーケンスの長さはCharacter.charCount(codePoint)
だけ増えます。
最終的には、Character.toChars(int)
メソッドによって引数がchar
配列に変換されてから、その配列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
codePoint
- Unicodeコード・ポイントpublic StringBuffer append(long lng)
long
引数の文字列表現をこのシーケンスに追加します。
最終的には、String.valueOf(long)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
lng
- long
。public StringBuffer append(float f)
float
引数の文字列表現をこのシーケンスに追加します。
最終的には、String.valueOf(float)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
f
- float
。public StringBuffer append(double d)
double
引数の文字列表現をこのシーケンスに追加します。
最終的には、String.valueOf(double)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
d
- double
。public StringBuffer delete(int start, int end)
start
から始まり、インデックスend - 1
の文字までになりますが、そのような文字が存在しない場合はシーケンスの末尾までになります。start
がend
に等しい場合、変更は一切行われません。start
- 開始インデックス(この値を含む)。end
- 終了インデックス(この値を含まない)。StringIndexOutOfBoundsException
- start
が負の値の場合、length()
より大きい場合、あるいはend
より大きい場合。public StringBuffer deleteCharAt(int index)
char
を削除します。このシーケンスは1 char
分だけ短くなります。
注: 指定されたインデックスの文字が補助文字であっても、このメソッドはその文字全体を削除しません。補助文字の処理を正しく行う必要がある場合は、Character.charCount(thisSequence.codePointAt(index))
(thisSequence
はこのシーケンス)を呼び出して、削除されるchar
の数を確認します。
index
- 削除されるchar
のインデックスStringIndexOutOfBoundsException
- index
が負の値の場合、あるいはlength()
に等しいかこれより大きい場合。public StringBuffer replace(int start, int end, String str)
String
内の文字で置き換えます。部分文字列は、指定されたstart
から始まり、インデックスend - 1
の文字までになりますが、そのような文字が存在しない場合はシーケンスの末尾までになります。まず、部分文字列内の文字が削除され、続いて、指定されたString
がstart
の位置に挿入されます。(必要であれば、指定されたStringに合わせてこのシーケンスの長さが調整されます。)start
- 開始インデックス(この値を含む)。end
- 終了インデックス(この値を含まない)。str
- 以前の内容を置換するString。StringIndexOutOfBoundsException
- start
が負の値の場合、length()
より大きい場合、あるいはend
より大きい場合。public String substring(int start)
String
を返します。部分文字列は指定されたインデックスで始まり、このシーケンスの末尾までになります。start
- 開始インデックス(この値を含む)。StringIndexOutOfBoundsException
- start
が0より小さい場合、あるいはこのオブジェクトの長さより大きい場合。public CharSequence subSequence(int start, int end)
次のフォームのメソッド呼出しは、
sb.subSequence(begin, end)
次の呼び出しと正確に同じ動作になります。
sb.substring(begin, end)
このメソッドが提供されているのは、このクラスがCharSequence
インタフェースを実装できるようにするためです。subSequence
、インタフェース: CharSequence
start
- 開始インデックス(この値を含む)。end
- 終了インデックス(この値を含まない)。IndexOutOfBoundsException
- start
またはend
が負の値の場合、end
がlength()
よりも大きい場合、あるいはstart
がend
よりも大きい場合public String substring(int start, int end)
String
を返します。部分文字列は、指定されたstart
から始まり、インデックスend - 1
にある文字までです。start
- 開始インデックス(この値を含む)。end
- 終了インデックス(この値を含まない)。StringIndexOutOfBoundsException
- start
またはend
が負の値であるかlength()
より大きい場合、またはstart
がend
より大きい場合。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()
より大きい場合、offset
またはlen
が負の値の場合、あるいは(offset+len)
がstr.length
より大きい場合。public StringBuffer insert(int offset, Object obj)
Object
引数の文字列表現をこの文字シーケンスに挿入します。
最終的には、String.valueOf(Object)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。obj
- Object
。StringIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuffer insert(int offset, String str)
このシーケンスの指定されたオフセット位置にString
引数の文字が順番に挿入され、その位置にもともとあった文字はすべて上方に移動され、このシーケンスの長さが引数の長さ分だけ増加します。str
がnull
の場合は、"null"
という4文字がこのシーケンスに挿入されます。
新しい文字列のインデックスkの位置にある文字は、次の文字に等しくなります。
offset
より小さい場合は、以前の文字シーケンス内のインデックスkの位置にある文字
offset
より小さくはないが、offset+str.length()
より小さい場合は、引数str
内のインデックスk-offset
の位置にある文字
offset+str.length()
より小さくない場合は、以前の文字シーケンス内のインデックスk-str.length()
の位置にある文字
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。str
- 文字列。StringIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuffer insert(int offset, char[] str)
char
配列引数の文字列表現をこのシーケンスに挿入します。
このシーケンスの内容のoffset
で示された位置に、配列引数の文字が挿入されます。このシーケンスの長さは、引数の長さの分だけ増えます。
最終的には、String.valueOf(char[])
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。str
- 文字配列。StringIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuffer insert(int dstOffset, CharSequence s)
CharSequence
をこのシーケンスに挿入します。
このシーケンスの指定されたオフセット位置にCharSequence
引数の文字が順番に挿入され、その位置にもともとあった文字がすべて上方に移動され、このシーケンスの長さが引数sの長さ分だけ増加します。
このメソッドの結果は、このオブジェクトのinsert
(dstOffset, s, 0, s.length())メソッドの呼び出しとまったく同じです。
s
がnull
の場合は、"null"
という4文字がこのシーケンスに挿入されます。
dstOffset
- オフセット。s
- 挿入されるシーケンスIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuffer insert(int dstOffset, CharSequence s, int start, int end)
CharSequence
のサブシーケンスをこのシーケンスに挿入します。
start
とend
で指定される引数s
の部分シーケンスが、このシーケンス内の指定された挿入先offsetに順番に挿入され、その位置にもともとあった文字はすべて上方に移動されます。このシーケンスの長さはend - start
だけ増えます。
このシーケンス内のインデックスkの位置にある文字は、次に等しくなります。
dstOffset
より小さい場合は、このシーケンス内のインデックスkの位置にある文字
dstOffset
に等しいかそれより大きく、dstOffset+end-start
より小さい場合は、引数s
内のインデックスk+start-dstOffset
の位置にある文字
dstOffset+end-start
に等しいかそれより大きい場合は、このシーケンス内のインデックスk-(end-start)
の位置にある文字
dstOffset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
start引数は負でない値でなければならず、end
より大きくてはいけません。
end引数は、start
に等しいかそれより大きく、sの長さに等しいかそれより小さくなければなりません。
s
がnull
の場合、このメソッドはsパラメータが"null"
という4文字を含むシーケンスであるかのように、文字を挿入します。
dstOffset
- このシーケンス内のオフセット。s
- 挿入されるシーケンス。start
- 挿入される部分シーケンスの開始インデックス。end
- 挿入される部分シーケンスの終了インデックス。IndexOutOfBoundsException
- dstOffset
が負の値であるかthis.length()
より大きい場合、start
またはend
が負の値の場合、start
がend
より大きい場合、あるいはend
がs.length()
より大きい場合public StringBuffer insert(int offset, boolean b)
boolean
引数の文字列表現をこのシーケンスに挿入します。
最終的には、String.valueOf(boolean)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。b
- boolean
。StringIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuffer insert(int offset, char c)
char
引数の文字列表現をこのシーケンスに挿入します。
最終的には、String.valueOf(char)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたインデックス位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。c
- char
。IndexOutOfBoundsException
- オフセットが無効な場合。public StringBuffer insert(int offset, int i)
int
引数の文字列表現をこのシーケンスに挿入します。
最終的には、String.valueOf(int)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。i
- int
。StringIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuffer insert(int offset, long l)
long
引数の文字列表現をこのシーケンスに挿入します。
最終的には、String.valueOf(long)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。l
- long
。StringIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuffer insert(int offset, float f)
float
引数の文字列表現をこのシーケンスに挿入します。
最終的には、String.valueOf(float)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。f
- float
。StringIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuffer insert(int offset, double d)
double
引数の文字列表現をこのシーケンスに挿入します。
最終的には、String.valueOf(double)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。d
- double
。StringIndexOutOfBoundsException
- オフセットが無効な場合。public int indexOf(String str)
this.toString().startsWith(str, <i>k</i>)
がtrue
である。str
- 任意の文字列。-1
。public int indexOf(String str, int fromIndex)
k
になります。
k >= Math.min(fromIndex, this.length()) &&
this.toString().startsWith(str, k)
このようなkの値が存在しない場合、-1が返されます。str
- 検索対象の部分文字列。fromIndex
-検索開始位置のインデックス。public int lastIndexOf(String str)
this.length()
と見なされます。返されるインデックスは、次を満たす最大値kになります。
this.toString().startsWith(str, k)
がtrueである。str
- 検索対象の部分文字列。-1
。public int lastIndexOf(String str, int fromIndex)
k <= Math.min(fromIndex, this.length()) &&
this.toString().startsWith(str, k)
このようなkの値が存在しない場合、-1が返されます。str
- 検索対象の部分文字列。fromIndex
- 検索開始位置のインデックス。public StringBuffer reverse()
reverse
メソッドの実行直前に、この文字シーケンスの文字長(char
値での長さではない)がnであったとします。このとき、新しい文字シーケンス内のインデックスkの文字は、以前の文字シーケンス内のインデックスn-k-1の文字と等しくなります。
反転操作を行うと、操作前にはペアになっていなかった下位サロゲートと上位サロゲートからサロゲート・ペアが生成される可能性があります。たとえば、「\uDC00\uD800」を反転すると「\uD800\uDC00」が生成されますが、これは有効なサロゲート・ペアです。
public String toString()
String
オブジェクトが割り当てられ、現在このオブジェクトで表されている文字シーケンスを含むように初期化されます。その後、このString
が返されます。その後このシーケンスが変更されても、String
の内容には影響ありません。toString
、インタフェース: CharSequence
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.