public final class StringBuilder extends Object implements Serializable, CharSequence
StringBuffer
と互換性があるAPIを提供しますが、同期化は保証されません。このクラスは、文字列バッファが単一のスレッド(一般的なケース)により使用されていた場合のStringBuffer
の簡単な代替として使用されるよう設計されています。このクラスは、ほとんどの実装で高速に実行されるので、可能な場合は、StringBuffer
よりも優先して使用することをお薦めします。
StringBuilder
の基本的なオペレーションには、append
メソッドおよびinsert
メソッドがあり、これらのメソッドはどんな種類のデータも受け取ることができるようにオーバーロードされています。メソッドはそれぞれ与えられたデータを効率的に文字列に変換し、文字列中の文字を文字列ビルダーに追加または挿入します。append
メソッドは常に、ビルダーの末尾に与えられた文字を追加し、insert
メソッドは指定された位置に文字を追加します。
たとえば、z
を、現在「start
」を含む文字列ビルダー・オブジェクトと見なす場合、z.append("le")
は文字列ビルダーの内容が「startle
」になるように変更するのに対して、z.insert(4, "le")
というメソッド呼出しは文字列ビルダーの内容が「starlet
」になるように作用します。
一般に、sbがStringBuilder
のインスタンスを参照している場合、sb.append(x)
はsb.insert(sb.length(), x)
と同じ結果になります。
各文字列ビルダーには容量があります。文字列ビルダーに含まれる文字列の長さが容量を超過しないかぎり、新しい内部バッファを割り当てる必要はありません。内部バッファがオーバーフローする場合、自動的に容量が増加します。
StringBuilder
のインスタンスは、複数のスレッドで使用するには安全ではありません。このような同期が必要な場合は、StringBuffer
を使用することをお薦めします。
ほかで指定がない場合、null
引数をコンストラクタまたはこのクラスのメソッドへ渡すと、NullPointerException
がスローされます。
StringBuffer
, String
, 直列化された形式コンストラクタと説明 |
---|
StringBuilder()
文字を持たず、初期容量が16文字である文字列ビルダーを構築します。
|
StringBuilder(CharSequence seq)
指定された
CharSequence 引数と同じ文字を含む文字列ビルダーを構築します。 |
StringBuilder(int capacity)
文字を持たず、
capacity 引数によって指定された初期容量の文字列ビルダーを構築します。 |
StringBuilder(String str)
指定された文字列の内容に初期化された文字列ビルダーを構築します。
|
修飾子と型 | メソッドと説明 |
---|---|
StringBuilder |
append(boolean b)
boolean 引数の文字列表現をシーケンスに追加します。 |
StringBuilder |
append(char c)
char 引数の文字列表現をこのシーケンスに追加します。 |
StringBuilder |
append(char[] str)
char 配列引数の文字列表現をこのシーケンスに追加します。 |
StringBuilder |
append(char[] str, int offset, int len)
char 配列引数の部分配列の文字列表現を、このシーケンスに追加します。 |
StringBuilder |
append(CharSequence s)
このAppendableに指定された文字シーケンスを追加します。
|
StringBuilder |
append(CharSequence s, int start, int end)
指定された
CharSequence のサブシーケンスをこのシーケンスに追加します。 |
StringBuilder |
append(double d)
double 引数の文字列表現をこのシーケンスに追加します。 |
StringBuilder |
append(float f)
float 引数の文字列表現をこのシーケンスに追加します。 |
StringBuilder |
append(int i)
int 引数の文字列表現をこのシーケンスに追加します。 |
StringBuilder |
append(long lng)
long 引数の文字列表現をこのシーケンスに追加します。 |
StringBuilder |
append(Object obj)
Object 引数の文字列表現を追加します。 |
StringBuilder |
append(String str)
指定された文字列をこの文字シーケンスに追加します。
|
StringBuilder |
append(StringBuffer sb)
指定された
StringBuffer をこのシーケンスに追加します。 |
StringBuilder |
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コード・ポイントの数を返します。
|
StringBuilder |
delete(int start, int end)
このシーケンスの部分文字列内の文字を削除します。
|
StringBuilder |
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)
指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。
|
StringBuilder |
insert(int offset, boolean b)
boolean 引数の文字列表現をこのシーケンスに挿入します。 |
StringBuilder |
insert(int offset, char c)
char 引数の文字列表現をこのシーケンスに挿入します。 |
StringBuilder |
insert(int offset, char[] str)
char 配列引数の文字列表現をこのシーケンスに挿入します。 |
StringBuilder |
insert(int index, char[] str, int offset, int len)
str 配列引数の部分配列の文字列表現を、このシーケンスに挿入します。 |
StringBuilder |
insert(int dstOffset, CharSequence s)
指定された
CharSequence をこのシーケンスに挿入します。 |
StringBuilder |
insert(int dstOffset, CharSequence s, int start, int end)
指定された
CharSequence のサブシーケンスをこのシーケンスに挿入します。 |
StringBuilder |
insert(int offset, double d)
double 引数の文字列表現をこのシーケンスに挿入します。 |
StringBuilder |
insert(int offset, float f)
float 引数の文字列表現をこのシーケンスに挿入します。 |
StringBuilder |
insert(int offset, int i)
2番目の
int 引数の文字列表現をこのシーケンスに挿入します。 |
StringBuilder |
insert(int offset, long l)
long 引数の文字列表現をこのシーケンスに挿入します。 |
StringBuilder |
insert(int offset, Object obj)
Object 引数の文字列表現をこの文字シーケンスに挿入します。 |
StringBuilder |
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 コード・ポイント分だけオフセットされた位置のインデックスを返します。 |
StringBuilder |
replace(int start, int end, String str)
このシーケンスの部分文字列内の文字を、指定された
String 内の文字で置き換えます。 |
StringBuilder |
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
charAt, chars, codePoints, length, subSequence
public StringBuilder()
public StringBuilder(int capacity)
capacity
引数によって指定された初期容量の文字列ビルダーを構築します。capacity
- 初期容量。NegativeArraySizeException
- capacity
引数が0
未満の場合。public StringBuilder(String str)
16
に文字列引数の長さを加えたものです。str
- バッファの初期内容。public StringBuilder(CharSequence seq)
CharSequence
引数と同じ文字を含む文字列ビルダーを構築します。文字列ビルダーの初期容量は、16
にCharSequence
引数の長さを加えたものです。seq
- コピー対象のシーケンス。public StringBuilder append(Object obj)
Object
引数の文字列表現を追加します。
最終的には、String.valueOf(Object)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
obj
- Object
。public StringBuilder append(String str)
String
引数の文字は、順番に追加され、引数の長さの分だけこのシーケンスの長さが増えます。str
がnull
の場合は、"null"
という4文字が追加されます。
append
メソッドの実行直前に、この文字シーケンスの長さがnであったとします。このとき、新しい文字シーケンス内のインデックスkの文字は、kがnより小さい場合は以前の文字シーケンス内のインデックスkの文字と等しくなり、それ以外の場合は引数str
内のインデックスk-nの文字と等しくなります。
str
- 文字列。public StringBuilder append(StringBuffer sb)
StringBuffer
をこのシーケンスに追加します。
StringBuffer
引数の文字がこのシーケンスに順番に追加され、引数の長さの分だけこのシーケンスの長さが増えます。sb
がnull
の場合は、このシーケンスに"null"
という4文字が追加されます。
append
メソッドの実行直前に、この文字シーケンスの長さがnであったとします。このとき、新しい文字シーケンス内のインデックスkの文字は、kがnより小さい場合は以前の文字シーケンス内のインデックスkの文字と等しくなり、それ以外の場合は引数sb
内のインデックスk-nの文字と等しくなります。
sb
- 追加するStringBuffer
。public StringBuilder append(CharSequence s)
Appendable
文字シーケンスcsqを実装するクラスによっては、文字シーケンス全体が追加されない可能性があります。たとえば、csqがCharBuffer
である場合、追加される文字サブシーケンスはバッファの位置または制限によって定義されます。
append
、インタフェース: Appendable
s
- 追加する文字シーケンス。csqがnullの場合は、このAppendableに「null」という4文字が追加される。public StringBuilder 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 StringBuilder append(char[] str)
char
配列引数の文字列表現をこのシーケンスに追加します。
配列引数の文字がこのシーケンスの内容に順番に追加されます。このシーケンスの長さは、引数の長さの分だけ増えます。
最終的には、String.valueOf(char[])
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
str
- 追加される文字。public StringBuilder 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 StringBuilder append(boolean b)
boolean
引数の文字列表現をシーケンスに追加します。
最終的には、String.valueOf(boolean)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
b
- boolean
。public StringBuilder append(char c)
char
引数の文字列表現をこのシーケンスに追加します。
引数がこのシーケンスの内容に追加されます。このシーケンスの長さは1
だけ増えます。
最終的には、String.valueOf(char)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
append
、インタフェース: Appendable
c
- char
。public StringBuilder append(int i)
int
引数の文字列表現をこのシーケンスに追加します。
最終的には、String.valueOf(int)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
i
- int
。public StringBuilder append(long lng)
long
引数の文字列表現をこのシーケンスに追加します。
最終的には、String.valueOf(long)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
lng
- long
。public StringBuilder append(float f)
float
引数の文字列表現をこのシーケンスに追加します。
最終的には、String.valueOf(float)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
f
- float
。public StringBuilder append(double d)
double
引数の文字列表現をこのシーケンスに追加します。
最終的には、String.valueOf(double)
メソッドによって引数が文字列に変換されてから、その文字列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
d
- double
。public StringBuilder appendCodePoint(int codePoint)
codePoint
引数の文字列表現をこのシーケンスに追加します。
引数がこのシーケンスの内容に追加されます。このシーケンスの長さはCharacter.charCount(codePoint)
だけ増えます。
最終的には、Character.toChars(int)
メソッドによって引数がchar
配列に変換されてから、その配列の文字がこの文字シーケンスに追加
された場合とまったく同じ結果になります。
codePoint
- Unicodeコード・ポイントpublic StringBuilder delete(int start, int end)
start
から始まり、インデックスend - 1
の文字までになりますが、そのような文字が存在しない場合はシーケンスの末尾までになります。start
がend
に等しい場合、変更は一切行われません。start
- 開始インデックス(この値を含む)。end
- 終了インデックス(この値を含まない)。StringIndexOutOfBoundsException
- start
が負の値の場合、length()
より大きい場合、あるいはend
より大きい場合。public StringBuilder deleteCharAt(int index)
char
を削除します。このシーケンスは1 char
分だけ短くなります。
注: 指定されたインデックスの文字が補助文字であっても、このメソッドはその文字全体を削除しません。補助文字の処理を正しく行う必要がある場合は、Character.charCount(thisSequence.codePointAt(index))
(thisSequence
はこのシーケンス)を呼び出して、削除されるchar
の数を確認します。
index
- 削除されるchar
のインデックスStringIndexOutOfBoundsException
- index
が負の値の場合、あるいはlength()
に等しいかこれより大きい場合。public StringBuilder replace(int start, int end, String str)
String
内の文字で置き換えます。部分文字列は、指定されたstart
から始まり、インデックスend - 1
の文字までになりますが、そのような文字が存在しない場合はシーケンスの末尾までになります。まず、部分文字列内の文字が削除され、続いて、指定されたString
がstart
の位置に挿入されます。(必要であれば、指定されたStringに合わせてこのシーケンスの長さが調整されます。)start
- 開始インデックス(この値を含む)。end
- 終了インデックス(この値を含まない)。str
- 以前の内容を置換するString。StringIndexOutOfBoundsException
- start
が負の値の場合、length()
より大きい場合、あるいはend
より大きい場合。public StringBuilder 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 StringBuilder insert(int offset, Object obj)
Object
引数の文字列表現をこの文字シーケンスに挿入します。
最終的には、String.valueOf(Object)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。obj
- Object
。StringIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuilder 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 StringBuilder insert(int offset, char[] str)
char
配列引数の文字列表現をこのシーケンスに挿入します。
このシーケンスの内容のoffset
で示された位置に、配列引数の文字が挿入されます。このシーケンスの長さは、引数の長さの分だけ増えます。
最終的には、String.valueOf(char[])
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。str
- 文字配列。StringIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuilder insert(int dstOffset, CharSequence s)
CharSequence
をこのシーケンスに挿入します。
このシーケンスの指定されたオフセット位置にCharSequence
引数の文字が順番に挿入され、その位置にもともとあった文字がすべて上方に移動され、このシーケンスの長さが引数sの長さ分だけ増加します。
このメソッドの結果は、このオブジェクトのinsert
(dstOffset, s, 0, s.length())メソッドの呼び出しとまったく同じです。
s
がnull
の場合は、"null"
という4文字がこのシーケンスに挿入されます。
dstOffset
- オフセット。s
- 挿入されるシーケンスIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuilder 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 StringBuilder insert(int offset, boolean b)
boolean
引数の文字列表現をこのシーケンスに挿入します。
最終的には、String.valueOf(boolean)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。b
- boolean
。StringIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuilder insert(int offset, char c)
char
引数の文字列表現をこのシーケンスに挿入します。
最終的には、String.valueOf(char)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたインデックス位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。c
- char
。IndexOutOfBoundsException
- オフセットが無効な場合。public StringBuilder insert(int offset, int i)
int
引数の文字列表現をこのシーケンスに挿入します。
最終的には、String.valueOf(int)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。i
- int
。StringIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuilder insert(int offset, long l)
long
引数の文字列表現をこのシーケンスに挿入します。
最終的には、String.valueOf(long)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。l
- long
。StringIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuilder insert(int offset, float f)
float
引数の文字列表現をこのシーケンスに挿入します。
最終的には、String.valueOf(float)
メソッドによって2番目の引数が文字列に変換されてから、その文字列の文字がこの文字シーケンス内の指定されたオフセット位置に挿入
された場合とまったく同じ結果になります。
offset
引数は0
に等しいかそれより大きく、このシーケンスの長さに等しいかこれより小さくなければなりません。
offset
- オフセット。f
- float
。StringIndexOutOfBoundsException
- オフセットが無効な場合。public StringBuilder 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 StringBuilder reverse()
reverse
メソッドの実行直前に、この文字シーケンスの文字長(char
値での長さではない)がnであったとします。このとき、新しい文字シーケンス内のインデックスkの文字は、以前の文字シーケンス内のインデックスn-k-1の文字と等しくなります。
反転操作を行うと、操作前にはペアになっていなかった下位サロゲートと上位サロゲートからサロゲート・ペアが生成される可能性があります。たとえば、「\uDC00\uD800」を反転すると「\uD800\uDC00」が生成されますが、これは有効なサロゲート・ペアです。
public String toString()
String
オブジェクトが割り当てられ、現在このオブジェクトで表されている文字シーケンスを含むように初期化されます。その後、このString
が返されます。その後このシーケンスが変更されても、String
の内容には影響ありません。toString
、インタフェース: CharSequence
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
引数が負の場合。public char charAt(int index)
char
値を返します。配列のインデックスと同様に、最初のchar
値の位置がインデックス0
、次の文字の位置が1
、といった具合になります。
index引数は、0
以上で、このシーケンスの長さより小さくなければなりません。
インデックスで指定されたchar
値がサロゲートの場合、サロゲート値が返されます。
charAt
、インタフェース: CharSequence
index
- 目的のchar
値のインデックス。char
値。IndexOutOfBoundsException
- index
が負の値の場合、あるいはlength()
に等しいかこれより大きい場合。public int codePointAt(int index)
char
値(Unicodeコード単位)を参照し、その範囲は0
- length()
- 1
になります。
指定されたインデックスで指定されたchar
値が上位サロゲート範囲にあり、それに続くインデックスがこのシーケンスの長さ未満で、以降のインデックスのchar
値が下位サロゲート範囲にある場合、このサロゲート・ペアに対応する補助コード・ポイントが返されます。それ以外の場合は、指定されたインデックスにあるchar
値が返されます。
index
- char
値へのインデックスindex
にある文字のコード・ポイント値IndexOutOfBoundsException
- index
引数が負の値、またはこのシーケンスの長さと同じかこれより大きい値の場合。public int codePointBefore(int index)
char
値(Unicodeコード単位)を参照し、その範囲は1
- length()
になります。
(index - 1)
のchar
値が下位サロゲート範囲に含まれており、(index - 2)
が負でなく、かつ(index - 2)
のchar
値が上位サロゲートに含まれている場合、そのサロゲート・ペアの補助コード・ポイント値が返されます。index - 1
のchar
値が、ペアになっていない下位サロゲートであるか、または上位サロゲートである場合、そのサロゲート値が返されます。
index
- 返すべきコード・ポイントの直後のインデックスIndexOutOfBoundsException
- index
引数が1未満であるか、またはこのシーケンスの長さより大きい値の場合。public int codePointCount(int beginIndex, int endIndex)
beginIndex
からインデックスendIndex - 1
の位置のchar
までです。したがって、テキスト範囲の長さ(char
数)は、endIndex-beginIndex
になります。このシーケンス内でペアになっていないサロゲートは、それぞれ1つのコード・ポイントとして数えられます。beginIndex
- テキスト範囲内の最初のchar
へのインデックス。endIndex
- テキスト範囲内の最後のchar
の直後のインデックス。IndexOutOfBoundsException
- beginIndex
が負であるか、endIndex
がこのシーケンスの長さより大きいか、あるいはbeginIndex
がendIndex
より大きい場合。public int offsetByCodePoints(int index, int codePointOffset)
index
からcodePointOffset
コード・ポイント分だけオフセットされた位置のインデックスを返します。index
とcodePointOffset
で指定されるテキスト範囲内でペアになっていないサロゲートは、それぞれ1つのコード・ポイントとして数えられます。index
- オフセットされるインデックスcodePointOffset
- オフセット(コード・ポイント数)IndexOutOfBoundsException
- index
が負の値またはこのシーケンスの長さよりも大きい場合、codePointOffset
が正の値でありindex
で始まるサブシーケンスの持つコード・ポイント数がcodePointOffset
コード・ポイント数よりも少ない場合、あるいはcodePointOffset
が負の値で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()
に等しいかこれより大きい場合。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
より大きい場合。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.