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 クラスは、このクラスと同じ処理をすべてサポートしながらも高速であり、同期を実行しないので、通常はこのクラスに優先して使用される必要があります。
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()
この文字シーケンスで使用されているストレージの低減を試みます。
|
public StringBuffer()
public StringBuffer(int capacity)
capacity
- 初期容量。NegativeArraySizeException
- capacity
引数が 0
未満の場合。public StringBuffer(String str)
16
に文字列引数の長さを加えたものです。str
- バッファーの初期内容。NullPointerException
- str
が null
である場合public StringBuffer(CharSequence seq)
CharSequence
引数と同じ文字を含む文字列バッファーを構築します。文字列バッファーの初期容量は、16
に CharSequence
引数の長さを加えたものです。
指定された CharSequence
の長さがゼロ以下の場合、容量 16
の空のバッファーが返されます。
seq
- コピー対象のシーケンス。NullPointerException
- seq
が null
である場合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
へのオフセット。NullPointerException
- dst
が null
である場合。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 の長さが増えます。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()); の呼び出しとまったく同じです。
このメソッドは、この (追加先) オブジェクトと同期しますが、ソース (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, k)
true
である。str
- 任意の文字列。-1
。NullPointerException
- str
が null
である場合。public int indexOf(String str, int fromIndex)
このような k の値が存在しない場合、-1 が返されます。k >= Math.min(fromIndex, str.length()) && this.toString().startsWith(str, k)
str
- 検索対象の部分文字列。fromIndex
-検索開始位置のインデックス。NullPointerException
- str
が null
である場合。public int lastIndexOf(String str)
this.length()
と見なされます。返されるインデックスは、次を満たす最大値 k になります。
が true である。this.toString().startsWith(str, k)
str
- 検索対象の部分文字列。-1
。NullPointerException
- str
が null
である場合。public int lastIndexOf(String str, int fromIndex)
このような k の値が存在しない場合、-1 が返されます。k <= Math.min(fromIndex, str.length()) && this.toString().startsWith(str, k)
str
- 検索対象の部分文字列。fromIndex
- 検索開始位置のインデックス。NullPointerException
- str
が null
である場合。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, 2013, Oracle and/or its affiliates. All rights reserved.