public final class String extends Object implements Serializable, Comparable<String>, CharSequence
Stringクラスは文字列を表します。 Javaプログラム内の"abc"などのリテラル文字列はすべて、このクラスのインスタンスとして実行されます。
文字列は定数です。この値を作成したあとに変更はできません。 文字列バッファは可変文字列をサポートします。 文字列オブジェクトは不変であるため、共用することができます。 たとえば、
String str = "abc";
は、次と同じです。
char data[] = {'a', 'b', 'c'};
String str = new String(data);
文字列がどのように使われるかについて、さらに例を示します。
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
String c = "abc".substring(2,3);
String d = cde.substring(1, 2);
Stringクラスには、文字列のそれぞれの文字をテストするメソッドや、文字列の比較、文字列の検索、部分文字列の抽出、および文字をすべて大文字または小文字に変換した文字列のコピー作成などを行うメソッドがあります。 ケース・マッピングは、Characterクラスで指定されたUnicode仕様バージョンに基づいています。
Java言語は、文字列連結演算子( + )、およびその他のオブジェクトから文字列への変換に対する特別なサポートを提供します。 文字列連結はStringBuilder (またはStringBuffer)クラスとそのappendメソッドを使って実装されています。 文字列変換はObjectによって定義されたtoStringメソッドを使って実装され、Javaのクラスすべてによって継承されます。 文字列連結および文字列変換についての詳細は、Gosling、Joy、およびSteeleによる『Java言語仕様』を参照してください。
ほかで指定がない場合、null引数をコンストラクタ、またはこのクラスのメソッドへ渡すとNullPointerExceptionがスローされます。
Stringは、補助文字をサロゲート・ペアで表現するUTF-16形式の文字列を表します(詳細は、Characterクラスの「Unicode文字表現」セクションを参照)。 charコード単位を参照するインデックス値です。したがって、補助文字はStringの2つの位置を使用します。
Stringクラスは、Unicodeコード単位(char値)を扱うメソッドのほかに、Unicodeコード・ポイント(文字)を扱うメソッドを提供します。
Object.toString(), StringBuffer, StringBuilder, Charset, 直列化された形式| 修飾子と型 | フィールド | 説明 |
|---|---|---|
static Comparator<String> |
CASE_INSENSITIVE_ORDER |
compareToIgnoreCaseの場合と同じようにStringオブジェクトを順序付けるComparatorです。 |
| コンストラクタ | 説明 |
|---|---|
String() |
新しく生成された
Stringオブジェクトを初期化して、空の文字シーケンスを表すようにします。 |
String(byte[] bytes) |
プラットフォームのデフォルトの文字セットを使用して、指定されたバイト配列を復号化することによって、新しい
Stringを構築します。 |
String(byte[] bytes, Charset charset) |
指定された文字セットを使用して、指定されたバイト配列を復号化することにより、新しい
Stringを構築します。 |
String(byte[] ascii, int hibyte) |
非推奨。
このメソッドでは、バイトから文字への変換が正しく行われません。 JDK 1.1以降では、これを行うには、
Charset (文字セットの名前)を取る、またはプラットフォームのデフォルト文字セットを使用するStringコンストラクタの使用が推奨されます。 |
String(byte[] bytes, int offset, int length) |
プラットフォームのデフォルトの文字セットを使用して、指定されたバイト部分配列を復号化することによって、新しい
Stringを構築します。 |
String(byte[] bytes, int offset, int length, Charset charset) |
指定された文字セットを使用して、指定された部分バイト配列を復号化することにより、新しい
Stringを構築します。 |
String(byte[] ascii, int hibyte, int offset, int count) |
非推奨。
このメソッドでは、バイトから文字への変換が正しく行われません。 JDK 1.1以降では、これを行うには、
Charset (文字セットの名前)を取る、またはプラットフォームのデフォルト文字セットを使用するStringコンストラクタの使用が推奨されます。 |
String(byte[] bytes, int offset, int length, String charsetName) |
指定された文字セットを使用して、指定されたバイト部分配列をデコードすることによって、新しい
Stringを構築します。 |
String(byte[] bytes, String charsetName) |
指定された文字セットを使用して、指定されたバイト配列を復号化することにより、新しい
Stringを構築します。 |
String(char[] value) |
新しい
Stringを割り当てて、これが文字配列引数に現在含まれている文字シーケンスを表すようにします。 |
String(char[] value, int offset, int count) |
文字配列引数の部分配列からなる文字を含む新しい
Stringを割り当てます。 |
String(int[] codePoints, int offset, int count) |
Unicodeコード・ポイント配列引数の部分配列からなる文字を含む新しい
Stringを割り当てます。 |
String(String original) |
新しく生成された
Stringオブジェクトを初期化して、引数と同じ文字シーケンスを表すようにします。つまり、新しく作成された文字列は引数文字列のコピーになります。 |
String(StringBuffer buffer) |
文字列バッファ引数に現在含まれている文字列を持つ新しい文字列を構築します。
|
String(StringBuilder builder) |
文字列ビルダー引数に現在含まれている文字列を持つ新しい文字列を割り当てます。
|
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
char |
charAt(int index) |
指定されたインデックスの
char値を返します。 |
int |
codePointAt(int index) |
指定されたインデックス位置の文字(Unicodeコード・ポイント)を返します。
|
int |
codePointBefore(int index) |
指定されたインデックスの前の文字(Unicodeコード・ポイント)を返します。
|
int |
codePointCount(int beginIndex, int endIndex) |
この
Stringの指定されたテキスト範囲のUnicodeコード・ポイントの数を返します。 |
int |
compareTo(String anotherString) |
2つの文字列を辞書的に比較します。
|
int |
compareToIgnoreCase(String str) |
大文字と小文字の区別なしで、2つの文字列を辞書的に比較します。
|
String |
concat(String str) |
指定された文字列をこの文字列の最後に連結します。
|
boolean |
contains(CharSequence s) |
この文字列が指定されたchar値のシーケンスを含む場合に限りtrueを返します。
|
boolean |
contentEquals(CharSequence cs) |
この文字列と指定された
CharSequenceを比較します。 |
boolean |
contentEquals(StringBuffer sb) |
この文字列と指定された
StringBufferを比較します。 |
static String |
copyValueOf(char[] data) |
valueOf(char[])と同等です。 |
static String |
copyValueOf(char[] data, int offset, int count) |
|
boolean |
endsWith(String suffix) |
この文字列が、指定された接尾辞で終るかどうかを判定します。
|
boolean |
equals(Object anObject) |
この文字列と指定されたオブジェクトを比較します。
|
boolean |
equalsIgnoreCase(String anotherString) |
大文字と小文字を区別せずに、この
Stringを別のStringと比較します。 |
static String |
format(Locale l, String format, Object... args) |
指定されたロケール、書式文字列、および引数を使って、フォーマットされた文字列を返します。
|
static String |
format(String format, Object... args) |
指定された書式の文字列と引数を使って、書式付き文字列を返します。
|
byte[] |
getBytes() |
プラットフォームのデフォルトの文字セットを使用してこの
Stringをバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納します。 |
byte[] |
getBytes(Charset charset) |
指定された文字セットを使用してこの
Stringをバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納します。 |
void |
getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin) |
非推奨。
このメソッドでは、文字からバイトへの変換が正しく行われません。 JDK 1.1では、文字からバイトへの変換には、プラットフォームのデフォルト文字セットを使用する
getBytes()メソッドの使用が推奨されます。 |
byte[] |
getBytes(String charsetName) |
指定された文字セットを使用してこの
Stringをバイト・シーケンスにエンコードし、結果を新規バイト配列に格納します。 |
void |
getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) |
この文字列から、コピー先の文字配列に文字をコピーします。
|
int |
hashCode() |
この文字列のハッシュ・コードを返します。
|
int |
indexOf(int ch) |
この文字列内で、指定された文字が最初に出現する位置のインデックスを返します。
|
int |
indexOf(int ch, int fromIndex) |
この文字列内で、指定されたインデックスから検索を開始し、指定された文字が最初に出現する位置のインデックスを返します。
|
int |
indexOf(String str) |
この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。
|
int |
indexOf(String str, int fromIndex) |
指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。
|
String |
intern() |
文字列オブジェクトの正準表現を返します。
|
boolean |
isEmpty() |
length()が0の場合にのみ、trueを返します。 |
static String |
join(CharSequence delimiter, CharSequence... elements) |
指定された
delimiterのコピーを使用して結合されたCharSequence要素のコピーからなる新しいStringを返します。 |
static String |
join(CharSequence delimiter, Iterable<? extends CharSequence> elements) |
指定された
delimiterのコピーを使用して結合されたCharSequence要素のコピーからなる新しいStringを返します。 |
int |
lastIndexOf(int ch) |
この文字列内で、指定された文字が最後に出現する位置のインデックスを返します。
|
int |
lastIndexOf(int ch, int fromIndex) |
この文字列内で、指定された文字が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先頭方向に行われる)。
|
int |
lastIndexOf(String str) |
この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。
|
int |
lastIndexOf(String str, int fromIndex) |
この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先頭方向に行われる)。
|
int |
length() |
この文字列の長さを返します。
|
boolean |
matches(String regex) |
この文字列が、指定された正規表現と一致するかどうかを判定します。
|
int |
offsetByCodePoints(int index, int codePointOffset) |
この
String内で、指定されたindexからcodePointOffsetコード・ポイント分だけオフセットされた位置のインデックスを返します。 |
boolean |
regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) |
2つの文字列領域が等しいかどうかを判定します。
|
boolean |
regionMatches(int toffset, String other, int ooffset, int len) |
2つの文字列領域が等しいかどうかを判定します。
|
String |
replace(char oldChar, char newChar) |
この文字列内にあるすべての
oldCharをnewCharに置換した結果生成される文字列を返します。 |
String |
replace(CharSequence target, CharSequence replacement) |
リテラル・ターゲット・シーケンスに一致するこの文字列の部分文字列を、指定されたリテラル置換シーケンスに置き換えます。
|
String |
replaceAll(String regex, String replacement) |
指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行します。
|
String |
replaceFirst(String regex, String replacement) |
指定された正規表現に一致する、この文字列の最初の部分文字列に対し、指定された置換を実行します。
|
String[] |
split(String regex) |
この文字列を、指定された正規表現に一致する位置で分割します。
|
String[] |
split(String regex, int limit) |
この文字列を、指定された正規表現に一致する位置で分割します。
|
boolean |
startsWith(String prefix) |
この文字列が、指定された接頭辞で始まるかどうかを判定します。
|
boolean |
startsWith(String prefix, int toffset) |
この文字列の指定されたインデックス以降の部分文字列が、指定された接頭辞で始まるかどうかを判定します。
|
CharSequence |
subSequence(int beginIndex, int endIndex) |
このシーケンスのサブシーケンスである文字シーケンスを返します。
|
String |
substring(int beginIndex) |
この文字列の部分文字列である文字列を返します。
|
String |
substring(int beginIndex, int endIndex) |
この文字列の部分文字列である文字列を返します。
|
char[] |
toCharArray() |
この文字列を新しい文字配列に変換します。
|
String |
toLowerCase() |
デフォルト・ロケールのルールを使って、この
String内のすべての文字を小文字に変換します。 |
String |
toLowerCase(Locale locale) |
指定された
Localeのルールを使って、このString内のすべての文字を小文字に変換します。 |
String |
toString() |
このオブジェクト(すでに文字列である)自身が返されます。
|
String |
toUpperCase() |
デフォルト・ロケールのルールを使って、この
String内のすべての文字を大文字に変換します。 |
String |
toUpperCase(Locale locale) |
指定された
Localeのルールを使って、このString内のすべての文字を大文字に変換します。 |
String |
trim() |
値がこの文字列である文字列を返します(先頭と末尾の空白は削除される)。
|
static String |
valueOf(boolean b) |
boolean引数の文字列表現を返します。 |
static String |
valueOf(char c) |
char引数の文字列表現を返します。 |
static String |
valueOf(char[] data) |
char配列引数の文字列表現を返します。 |
static String |
valueOf(char[] data, int offset, int count) |
char配列引数の特定の部分配列の文字列表現を返します。 |
static String |
valueOf(double d) |
double引数の文字列表現を返します。 |
static String |
valueOf(float f) |
float引数の文字列表現を返します。 |
static String |
valueOf(int i) |
int引数の文字列表現を返します。 |
static String |
valueOf(long l) |
long引数の文字列表現を返します。 |
static String |
valueOf(Object obj) |
Object引数の文字列表現を返します。 |
chars, codePointspublic static final Comparator<String> CASE_INSENSITIVE_ORDER
compareToIgnoreCaseの場合と同じようにStringオブジェクトを順序付けるComparatorです。 このコンパレータは直列化可能です。
このComparatorはロケールを考慮しないので、一部のロケールでは、正しい順序に並べられないことがあります。 java.textパッケージは、ロケールに依存する並べ替えを行うために照合機能を提供しています。
Collator.compare(String, String)public String()
Stringオブジェクトを初期化して、空の文字シーケンスを表すようにします。 Stringは不変なので、このコンストラクタを使う必要はありません。 public String(String original)
Stringオブジェクトを初期化して、引数と同じ文字シーケンスを表すようにします。つまり、新しく作成された文字列は引数文字列のコピーになります。 Stringは不変なので、originalの明示的なコピーが必要でないかぎり、このコンストラクタを使う必要はありません。 original -A Stringpublic String(char[] value)
Stringを割り当てて、これが文字配列引数に現在含まれている文字シーケンスを表すようにします。 文字配列の内容がコピーされます。コピー後にその文字が変更されても、新しく作成された文字列には影響しません。 value - 文字列の初期値public String(char[] value,
int offset,
int count)
Stringを割り当てます。 引数offsetは部分配列の先頭の文字のインデックスであり、引数countは部分配列の長さを指定します。 部分配列の内容がコピーされます。コピー後に文字配列が変更されても、新しく作成された文字列には影響しません。 value - 文字列のソースである配列offset - 初期オフセットcount - 長さIndexOutOfBoundsException - offset引数とcount引数が、value配列の境界の外側の文字を指す場合public String(int[] codePoints,
int offset,
int count)
Stringを割り当てます。 引数offsetは部分配列の先頭のコード・ポイントのインデックスであり、引数countは部分配列の長さを指定します。 部分配列の内容がcharに変換されます。変換後にint配列が変更されても、新しく作成された文字列には影響しません。 codePoints - Unicodeコード・ポイントのソースである配列offset - 初期オフセットcount - 長さIllegalArgumentException - codePointsで無効なUnicodeコード・ポイントが見つかった場合IndexOutOfBoundsException - offset引数とcount引数が、codePoints配列の境界の外側の文字を指す場合@Deprecated public String(byte[] ascii, int hibyte, int offset, int count)
Charset (文字セットの名前)を取る、またはプラットフォームのデフォルト文字セットを使用するStringコンストラクタの使用が推奨されます。 Stringを割り当てます。
引数offsetは部分配列の先頭のバイトのインデックスであり、引数countは部分配列の長さを指定します。
部分配列の各byteは上記メソッドに指定されるcharに変換されます。
ascii - 文字列に変換されるバイトhibyte - 16ビットの各Unicodeコード単位の上位8ビットoffset - 初期オフセットcount - 長さIndexOutOfBoundsException - offsetまたはcount引数が無効な場合String(byte[], int), String(byte[], int, int, java.lang.String), String(byte[], int, int, java.nio.charset.Charset), String(byte[], int, int), String(byte[], java.lang.String), String(byte[], java.nio.charset.Charset), String(byte[])@Deprecated public String(byte[] ascii, int hibyte)
Charset (文字セットの名前)を取る、またはプラットフォームのデフォルト文字セットを使用するStringコンストラクタの使用が推奨されます。 Stringを割り当てます。 作成される文字列の各文字データcは、バイト配列の対応するコンポーネントbから、次のようになります。
c == (char)(((hibyte & 0xff) << 8)
| (b & 0xff))
ascii - 文字列に変換されるバイトhibyte - 16ビットの各Unicodeコード単位の上位8ビットString(byte[], int, int, java.lang.String), String(byte[], int, int, java.nio.charset.Charset), String(byte[], int, int), String(byte[], java.lang.String), String(byte[], java.nio.charset.Charset), String(byte[])public String(byte[] bytes,
int offset,
int length,
String charsetName)
throws UnsupportedEncodingException
Stringを構築します。 新しいStringの長さは文字セットによって変化するため、部分配列長と一致しないことがあります。
指定された文字セットで指定されたバイトが無効な場合、このコンストラクタの動作は指定されません。 デコード処理をより強力に制御する必要がある場合、CharsetDecoderクラスを使用する必要があります。
bytes - 文字列に復号化されるバイトoffset - 復号化される先頭バイトのインデックスlength - 復号化するバイト数charsetName - サポートされているcharsetの名前UnsupportedEncodingException - 指定された文字セットがサポートされていない場合IndexOutOfBoundsException - offset引数とlength引数が、bytes配列の境界の外側の文字を指す場合public String(byte[] bytes,
int offset,
int length,
Charset charset)
Stringを構築します。 新しいStringの長さは文字セットによって変化するため、部分配列長と一致しないことがあります。
このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、この文字セットのデフォルトの置換文字列で置き換えます。 デコード処理をより強力に制御する必要がある場合、CharsetDecoderクラスを使用する必要があります。
bytes - 文字列に復号化されるバイトoffset - 復号化される先頭バイトのインデックスlength - 復号化するバイト数charset - bytesの復号化に使用される文字セットIndexOutOfBoundsException - offset引数とlength引数が、bytes配列の境界の外側の文字を指す場合public String(byte[] bytes,
String charsetName)
throws UnsupportedEncodingException
Stringを構築します。 新しいStringの長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。
指定された文字セットで指定されたバイトが無効な場合、このコンストラクタの動作は指定されません。 デコード処理をより強力に制御する必要がある場合、CharsetDecoderクラスを使用する必要があります。
bytes - 文字列に復号化されるバイトcharsetName - サポートされているcharsetの名前UnsupportedEncodingException - 指定された文字セットがサポートされていない場合public String(byte[] bytes,
Charset charset)
Stringを構築します。 新しいStringの長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。
このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、この文字セットのデフォルトの置換文字列で置き換えます。 デコード処理をより強力に制御する必要がある場合、CharsetDecoderクラスを使用する必要があります。
bytes - 文字列に復号化されるバイトcharset - bytesの復号化に使用される文字セットpublic String(byte[] bytes,
int offset,
int length)
Stringを構築します。 新しいStringの長さは文字セットによって変化するため、部分配列長と一致しないことがあります。
指定されたバイトがデフォルトの文字セットで無効な場合、このコンストラクタの動作は指定されません。 デコード処理をより強力に制御する必要がある場合、CharsetDecoderクラスを使用する必要があります。
bytes - 文字列に復号化されるバイトoffset - 復号化される先頭バイトのインデックスlength - 復号化するバイト数IndexOutOfBoundsException - offset引数とlength引数が、bytes配列の境界の外側の文字を指す場合public String(byte[] bytes)
Stringを構築します。 新しいStringの長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。
指定されたバイトがデフォルトの文字セットで無効な場合、このコンストラクタの動作は指定されません。 デコード処理をより強力に制御する必要がある場合、CharsetDecoderクラスを使用する必要があります。
bytes - 文字列に復号化されるバイトpublic String(StringBuffer buffer)
buffer -A StringBufferpublic String(StringBuilder builder)
このコンストラクタの提供目的は、StringBuilderに移行しやすくすることです。 toStringメソッドを使って文字列ビルダーから文字列を取得することは、処理が高速になるので一般的に推奨されています。
builder -AStringBuilderpublic int length()
length、インタフェースCharSequencepublic boolean isEmpty()
length()が0の場合にのみ、trueを返します。length()が0の場合はtrue、それ以外の場合はfalsepublic char charAt(int index)
char値を返します。 インデックスの範囲は0からlength() - 1までです。 配列のインデックス付けの場合と同じように、シーケンスの最初のcharのインデックスは0、次の文字のインデックスは1と続きます。
インデックスで指定されたchar値がサロゲートの場合、サロゲート値が返されます。
charAt、インタフェースCharSequenceindex - char値のインデックス。char値。 最初のchar値のインデックスが0になる。 IndexOutOfBoundsException - index引数が負の値、または文字列の長さと同じかこれより大きい値の場合。public int codePointAt(int index)
char値(Unicodeコード単位)を参照し、その範囲は0 - length()- 1になります。
指定されたインデックス位置の指定されたchar値が上位サロゲート範囲に含まれており、それに続くインデックスがStringの長さ未満であり、かつそのインデックス位置の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)
Stringの指定されたテキスト範囲のUnicodeコード・ポイントの数を返します。 テキスト範囲は、指定されたbeginIndexからインデックスendIndex - 1の位置のcharまでです。 したがって、テキスト範囲の長さ(char数)は、endIndex-beginIndexになります。 テキスト範囲内でペアになっていないサロゲートは、それぞれ1つのコード・ポイントとして数えられます。 beginIndex - テキスト範囲内の最初のcharへのインデックス。endIndex - テキスト範囲内の最後のcharの直後のインデックス。IndexOutOfBoundsException - beginIndexが負であるか、endIndexがこのStringの長さより大きいか、あるいはbeginIndexがendIndexより大きい場合。public int offsetByCodePoints(int index,
int codePointOffset)
String内で、指定されたindexからcodePointOffsetコード・ポイント分だけオフセットされた位置のインデックスを返します。 indexとcodePointOffsetで指定されるテキスト範囲内でペアになっていないサロゲートは、それぞれ1つのコード・ポイントとして数えられます。 index - オフセットされるインデックスcodePointOffset - オフセット(コード・ポイント数)String内でのインデックスIndexOutOfBoundsException - indexが負の値、またはこのStringの長さよりも大きい場合、codePointOffsetが正の値でありindexから始まる部分文字列の持つコード・ポイント数がcodePointOffsetコード・ポイント数よりも少ない場合、またはcodePointOffsetが負の値でindexの前の部分文字列の持つ値がcodePointOffsetコード・ポイントの絶対値よりも小さい場合。public void getChars(int srcBegin,
int srcEnd,
char[] dst,
int dstBegin)
コピーされる最初の文字のインデックスはsrcBegin、コピーされる最後の文字のインデックスはsrcEnd-1です。したがって、コピーされる文字数はsrcEnd-srcBeginとなります。 文字はdstの部分配列にコピーされます。始点のインデックスはdstBeginで、終点のインデックスは次のようになります。
dstBegin + (srcEnd-srcBegin) - 1
srcBegin - コピー対象文字列内の最初の文字のインデックス。srcEnd - コピー対象文字列内の最後の文字のあとのインデックス。dst - 転送先配列。dstBegin - コピー先の配列内での開始座標。IndexOutOfBoundsException - 次のどれかに当てはまる場合。
srcBeginが負である。
srcBeginがsrcEndより大きい
srcEndがこの文字列の長さより大きい
dstBeginが負である
dstBegin+(srcEnd-srcBegin)がdst.lengthより大きい@Deprecated public void getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
getBytes()メソッドの使用が推奨されます。 コピーする最初の文字はインデックスsrcBegin、コピーする最後の文字はインデックスsrcEnd-1になります。 コピーする文字の合計数はsrcEnd-srcBeginです。 文字をバイトに変換したものがdstの部分配列にコピーされますが、その部分配列の始点のインデックスはdstBeginで、終点のインデックスは次のようになります。
dstBegin + (srcEnd-srcBegin) - 1
srcBegin - コピー対象文字列内の最初の文字のインデックスsrcEnd - コピー対象文字列内の最後の文字のあとのインデックスdst - コピー先配列dstBegin - コピー先の配列内での開始オフセットIndexOutOfBoundsException - 次のどれかに当てはまる場合。
srcBeginが負である
srcBeginがsrcEndより大きい
srcEndがこの文字列の長さより大きい
dstBeginが負である
dstBegin+(srcEnd-srcBegin)がdst.lengthより大きい
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
Stringをバイト・シーケンスにエンコードし、結果を新規バイト配列に格納します。
指定された文字セットでこの文字列をエンコードできない場合、このメソッドの動作は指定されません。 エンコード処理をより強力に制御する必要がある場合は、CharsetEncoderクラスを使用してください。
charsetName - サポートされているcharsetの名前UnsupportedEncodingException - 指定された文字セットがサポートされていない場合public byte[] getBytes(Charset charset)
Stringをバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納します。
このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、この文字セットのデフォルトの置換バイト配列で置き換えます。 エンコード処理をより強力に制御する必要がある場合は、CharsetEncoderクラスを使用してください。
charset - Stringのエンコード化に使用されるCharsetpublic byte[] getBytes()
Stringをバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納します。
デフォルトの文字セットでこの文字列をエンコード化できない場合、このメソッドの動作は指定されません。 エンコード処理をより強力に制御する必要がある場合は、CharsetEncoderクラスを使用してください。
public boolean equals(Object anObject)
nullではなく、このオブジェクトと同じ文字シーケンスを表すStringオブジェクトである場合にだけ、結果はtrueになります。 equals、クラスObjectanObject - このStringと比較するオブジェクトStringを表す場合はtrue、それ以外の場合はfalsecompareTo(String), equalsIgnoreCase(String)public boolean contentEquals(StringBuffer sb)
StringBufferを比較します。 結果がtrueになるのは、このStringが指定されたStringBufferと同じ文字シーケンスを表す場合だけです。 このメソッドは、StringBufferとの同期をとります。 sb - このStringと比較するStringBufferStringが、指定されたStringBufferと同じ文字シーケンスを表す場合はtrue。そうでない場合はfalsepublic boolean contentEquals(CharSequence cs)
CharSequenceを比較します。 このStringが、指定されたシーケンスと同じ文字値シーケンスを表す場合にだけ、結果がtrueになります。 CharSequenceがStringBufferである場合、このメソッドはそれとの同期をとるので注意してください。 cs - このStringと比較されるシーケンスStringが、指定されたシーケンスと同じ文字値シーケンスを表す場合はtrue。そうでない場合はfalsepublic boolean equalsIgnoreCase(String anotherString)
Stringを別のStringと比較します。 長さが同じで、2つの文字列内の対応する文字が大文字と小文字の区別なしで等しい場合、2つの文字列は大文字と小文字の区別なしで等しいと見なされます。
次のどれかに該当する場合に、c1とc2という2つの文字は大文字小文字の区別なしで等しいと見なされます。
==演算子による比較)
Character.toUpperCase(char)メソッドをそれぞれの文字に適用すると同じ結果になる
Character.toLowerCase(char)メソッドをそれぞれの文字に適用すると同じ結果になる
anotherString - このStringと比較するStringnullでなく、同等のString (大文字と小文字の区別なし)を表す場合はtrue、それ以外の場合はfalseequals(Object)public int compareTo(String anotherString)
Stringオブジェクトによって表される文字シーケンスが、引数文字列によって表される文字シーケンスと辞書的に比較されます。 このStringオブジェクトが辞書的に引数文字列より前にある場合は、結果は負の整数になります。 このStringオブジェクトが辞書的に引数文字列の後ろにある場合、結果は正の整数になります。 それらの文字列が等しい場合、結果はゼロになります。compareToから0が返されるのは、equals(Object)メソッドからtrueが返される場合だけです。
辞書的の順序の定義を示します。 2つの文字列が異なる場合、両方の文字列に対して有効なインデックスに位置する文字が異なるか、2つの文字列の長さが異なるか、あるいはその両方が該当します。 1つ以上のインデックス位置にある文字が異なる場合は、このうちのもっとも小さいインデックスをkとすると、<演算子を使用して「より小さい」値と判定される、位置kにある文字を持つ文字列が、もう一方の文字列より辞書的に前になります。 この場合、compareToは2つの文字列で位置kにある2つの文字の値の差を返します。これは次の式で表される値になります。
有効なすべてのインデックス位置における文字が同じ場合は、短い方の文字列が辞書的に前になります。 この場合は、this.charAt(k)-anotherString.charAt(k)
compareToは文字列の長さの差を返します。これは次の式で表される値になります。
this.length()-anotherString.length()
compareTo、インタフェースComparable<String>anotherString - 比較対象のString。0。この文字列が文字列引数より辞書式に小さい場合は、0より小さい値。この文字列が文字列引数より辞書式に大きい場合は、0より大きい値。public int compareToIgnoreCase(String str)
compareToを呼び出して得られた符号を持つ整数を返します。ここでは、各文字でCharacter.toLowerCase(Character.toUpperCase(character))を呼び出すことで大文字と小文字の違いがなくなります。
このメソッドはロケールを考慮しないので、一部のロケールでは、正しい順序に並べられないことがあります。 java.textパッケージは、ロケールに依存する並べ替えを行うために照合機能を提供しています。
str - 比較対象のString。Collator.compare(String, String)public boolean regionMatches(int toffset,
String other,
int ooffset,
int len)
このStringオブジェクトの部分文字列が、引数otherの部分文字列と比較されます。 これらの部分文字列が同じ文字シーケンスを表す場合、結果はtrueになります。 比較の対象となるStringオブジェクトの部分文字列は、インデックスtoffsetから始まり、長さはlenです。 比較の対象となるotherの部分文字列はインデックスooffsetから始まり、長さはlenです。 次のどれかに該当する場合にだけ、結果はfalseになります。
toffsetが負の場合。
ooffsetが負の場合。
toffset+lenがこのStringオブジェクトの長さより大きい。
ooffset+lenが引数otherの長さより大きい。
lenより小さく、負でない、次のような整数kがある: this.charAt(toffset + k) != other.charAt(ooffset + k)
toffset - この文字列内の部分領域の開始オフセット。other - 文字列引数。ooffset - 文字列引数内の部分領域の開始オフセット。len - 比較対象の文字数。true、そうでない場合はfalse。public boolean regionMatches(boolean ignoreCase,
int toffset,
String other,
int ooffset,
int len)
このStringオブジェクトの部分文字列が、引数otherの部分文字列と比較されます。 これらの部分文字列が同じ文字シーケンスを表す場合、結果はtrueになります。ignoreCaseがtrueの場合にのみ、大文字と小文字が区別されません。 比較の対象となるStringオブジェクトの部分文字列は、インデックスtoffsetから始まり、長さはlenです。 比較の対象となるotherの部分文字列はインデックスooffsetから始まり、長さはlenです。 次のどれかに該当する場合にだけ、結果はfalseになります。
toffsetが負の場合。
ooffsetが負の場合。
toffset+lenがこのStringオブジェクトの長さより大きい。
ooffset+lenが引数otherの長さより大きい。
ignoreCaseがfalseであり、lenより小さく、負でない、次のような整数kがある:
this.charAt(toffset+k) != other.charAt(ooffset+k)
ignoreCaseがtrueであり、lenより小さく、負でない、次のような整数kがある:
Character.toLowerCase(this.charAt(toffset+k)) !=
Character.toLowerCase(other.charAt(ooffset+k))
および
Character.toUpperCase(this.charAt(toffset+k)) !=
Character.toUpperCase(other.charAt(ooffset+k))
ignoreCase - trueの場合、文字の比較の際に大文字小文字は区別されない。toffset - この文字列内の部分領域の開始オフセット。other - 文字列引数。ooffset - 文字列引数内の部分領域の開始オフセット。len - 比較対象の文字数。true、そうでない場合はfalse。 一致した場合に、大文字と小文字が区別されているかどうかは引数ignoreCaseによって決まる。 public boolean startsWith(String prefix, int toffset)
prefix - 接頭辞。toffset - この文字列の比較を開始する位置。toffsetで始まるこのオブジェクトの部分文字列の接頭辞である場合はtrue、そうでない場合はfalse。 toffsetが負の値の場合、あるいはStringオブジェクトの長さより大きい場合、結果はfalse。そうでない場合は、結果は次の式の結果と同じ
this.substring(toffset).startsWith(prefix)
public boolean startsWith(String prefix)
prefix - 接頭辞。true、そうでない場合はfalse。 引数が空の文字列の場合や、equals(Object)メソッドによる判定においてこのStringオブジェクトに等しい場合にもtrueが返される。 public boolean endsWith(String suffix)
suffix - 接尾辞。true、そうでない場合はfalse。 引数が空の文字列の場合や、equals(Object)メソッドによる判定においてこのStringオブジェクトに等しい場合の結果はtrueになる。 public int hashCode()
Stringのハッシュ・コードは、次の方法で計算します。
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
int算術が使用されますが、ここで、s[i]は文字列のi番目の文字であり、nは文字列の長さであり、^は累乗を示します。 空の文字列のハッシュ値は0です。 hashCode、クラスObjectObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object)public int indexOf(int ch)
chを持つ文字がこのStringオブジェクトによって表される文字シーケンス内にある場合、最初に出現する位置のインデックス(Unicodeコード単位)が返されます。 chの値が0から0xFFFFの範囲にある場合、次の式がtrueとなるような最小値kが返されます。
がtrueである。this.charAt(k) == ch
chがほかの値の場合、次の式がtrueとなるような最小値kです。
がtrueである。 該当する文字がこの文字列内にない場合は、this.codePointAt(k) == ch
-1が返されます。 ch - 文字(Unicodeコード・ポイント)。-1。public int indexOf(int ch,
int fromIndex)
値chを持つ文字が、このStringオブジェクトによって表される文字シーケンスのfromIndexより大きいか同じインデックス位置にある場合、該当する最初のインデックスが返されます。 chの値が0から0xFFFFの範囲にある場合、次の式がtrueとなるような最小値kが返されます。
がtrueである。(this.charAt(k) == ch)&&(k >= fromIndex)
chがほかの値の場合、次の式がtrueとなるような最小値kです。
がtrueである。 いずれの場合も、そのような文字がこの文字列内の位置(this.codePointAt(k) == ch)&&(k >= fromIndex)
fromIndexかそれより後に存在しない場合は、-1が返されます。
fromIndexの値に対して制約はない。 負の値の場合は、ゼロの場合と同じ結果になります。この文字列全体が検索されます。 この文字列の長さより大きい場合は、この文字列の長さに等しい場合と同じ結果になり、-1が返されます。
すべてのインデックスは、char値(Unicodeコード単位)で指定されます。
ch - 文字(Unicodeコード・ポイント)。fromIndex - 検索開始位置のインデックス。fromIndexと同じかこれより大きいインデックス位置にある場合は、最初に出現した位置のインデックス。文字がない場合は-1。public int lastIndexOf(int ch)
ch値が0から0xFFFFの範囲にある場合、返されるインデックス(Unicodeコード単位)は、次の式に該当する最大値kです。
がtrueである。this.charAt(k) == ch
chがほかの値の場合、次の式がtrueとなるような最大値kです。
がtrueである。 該当する文字がこの文字列内にない場合は、this.codePointAt(k) == ch
-1が返されます。 Stringの検索は最後の文字から開始され、先頭方向に行われます。 ch - 文字(Unicodeコード・ポイント)。-1。public int lastIndexOf(int ch,
int fromIndex)
ch値が0から0xFFFFの範囲にある場合、返されるインデックスは、次の式に該当する最大値kです。
がtrueである。(this.charAt(k) == ch)&&(k <= fromIndex)
chがほかの値の場合、次の式がtrueとなるような最大値kです。
がtrueである。 いずれの場合も、そのような文字がこの文字列内の位置(this.codePointAt(k) == ch)&&(k <= fromIndex)
fromIndexかそれより前に存在しない場合は、-1が返されます。
すべてのインデックスは、char値(Unicodeコード単位)で指定されます。
ch - 文字(Unicodeコード・ポイント)。fromIndex - 検索開始位置のインデックス。 fromIndexの値に対して制約はない。 この文字列の長さと同じかこれより大きい場合は、この文字列の長さより1小さい場合と同じ結果になり、この文字列全体が検索される。 負の値の場合は、-1の場合と同じ結果になり、-1が返される。 fromIndexと同じかこれより小さいインデックス位置に最後に出現する位置のインデックス。指定された文字がその位置より前にない場合は-1。public int indexOf(String str)
返されるインデックスは、次の式がtrueとなるような最小値kになります。
このようなkの値が存在しない場合、this.startsWith(str, k)
-1が返されます。str - 検索対象の部分文字列。-1。public int indexOf(String str, int fromIndex)
返されるインデックスは、次の式がtrueとなるような最小値kになります。
このようなkの値が存在しない場合、k >= fromIndex&&this.startsWith(str, k)
-1が返されます。str - 検索対象の部分文字列。fromIndex -検索開始位置のインデックス。-1。public int lastIndexOf(String str)
this.length()と見なされます。
返されるインデックスは、次の式がtrueとなるような最大値kになります。
このようなkの値が存在しない場合、this.startsWith(str, k)
-1が返されます。str - 検索対象の部分文字列。-1。public int lastIndexOf(String str, int fromIndex)
返されるインデックスは、次の式がtrueとなるような最大値kになります。
このようなkの値が存在しない場合、k<=fromIndex&&this.startsWith(str, k)
-1が返されます。str - 検索対象の部分文字列。fromIndex - 検索開始位置のインデックス。-1。public String substring(int beginIndex)
例
"unhappy".substring(2) returns "happy" "Harbison".substring(3) returns "bison" "emptiness".substring(9) returns "" (an empty string)
beginIndex - 開始インデックス(この値を含む)。IndexOutOfBoundsException - beginIndexが負の値の場合、あるいはこのStringオブジェクトの長さより大きい場合。public String substring(int beginIndex, int endIndex)
beginIndexから始まり、インデックスendIndex - 1にある文字までです。 したがって、部分文字列の長さはendIndex-beginIndexになります。
例
"hamburger".substring(4, 8) returns "urge" "smiles".substring(1, 5) returns "mile"
beginIndex - 開始インデックス(この値を含む)。endIndex - 終了インデックス(この値を含まない)。IndexOutOfBoundsException - beginIndexが負であるか、endIndexがこのStringオブジェクトの長さより大きいか、あるいはbeginIndexがendIndexより大きい場合。public CharSequence subSequence(int beginIndex, int endIndex)
次のフォームのメソッド呼出しは、
次の呼び出しと正確に同じ動作になります。str.subSequence(begin, end)
str.substring(begin, end)
subSequence、インタフェースCharSequenceStringクラスがCharSequenceインタフェースを実装できるようにするためです。beginIndex - 開始インデックス(この値を含む)。endIndex - 終了インデックス(この値を含まない)。IndexOutOfBoundsException - beginIndexまたはendIndexが負の場合、endIndexがlength()より大きい場合、またはbeginIndexがendIndexより大きい場合public String concat(String str)
引数文字列の長さが0の場合は、このStringオブジェクトが返されます。 それ以外の場合は、このStringオブジェクトで表される文字列と引数文字列で表される文字列とを連結したものを表すStringオブジェクトが返されます。
例
"cares".concat("s") returns "caress"
"to".concat("get").concat("her") returns "together"
str - このStringの最後に連結されるString。public String replace(char oldChar, char newChar)
oldCharをnewCharに置換した結果生成される文字列を返します。
文字oldCharがこのStringオブジェクトによって表される文字列内にない場合は、このStringオブジェクトへの参照が返されます。 それ以外の場合は、このStringオブジェクトで表される文字列と同じ文字列を表すStringオブジェクトが返されます。ただし、文字列内のoldCharはすべてnewCharに置換されます。
例
"mesquite in your cellar".replace('e', 'o')
returns "mosquito in your collar"
"the war of baronets".replace('r', 'y')
returns "the way of bayonets"
"sparring with a purple porpoise".replace('p', 't')
returns "starring with a turtle tortoise"
"JonL".replace('q', 'x') returns "JonL" (no change)
oldChar - 以前の文字。newChar - 新しい文字。oldCharをnewCharに置換することによって生成された文字列。public boolean matches(String regex)
このフォームのメソッド呼び出しstr.matches(regex)では、次の式と正確に同じ結果が得られます。
Pattern.matches(regex, str)
regex - この文字列との一致を判定する正規表現trueが返されるPatternSyntaxException - 正規表現の構文が無効な場合Patternpublic boolean contains(CharSequence s)
s - 検索するシーケンスsを含む場合はtrue。そうでない場合はfalsepublic String replaceFirst(String regex, String replacement)
このフォームのメソッド呼び出しstr.replaceFirst(regex, repl)では、次の式と正確に同じ結果が得られます。
Pattern.compile(regex).matcher(str).replaceFirst(repl)
置換文字列内でバックスラッシュ(\)とドル記号($)を使用すると、それをリテラル置換文字列として処理した場合とは結果が異なることがあります。Matcher.replaceFirst(java.lang.String)を参照してください。 必要に応じて、Matcher.quoteReplacement(java.lang.String)を使用して、これらの文字に特別な意味を持たせないようにしてください。
regex - この文字列との一致を判定する正規表現replacement - 最初に一致するものに置き換えられる文字列StringPatternSyntaxException - 正規表現の構文が無効な場合Patternpublic String replaceAll(String regex, String replacement)
このフォームのメソッド呼び出しstr.replaceAll(regex, repl)では、次の式と正確に同じ結果が得られます。
Pattern.compile(regex).matcher(str).replaceAll(repl)
置換文字列内でバックスラッシュ(\)とドル記号($)を使用すると、それをリテラル置換文字列として処理した場合とは結果が異なることがあります。Matcher.replaceAllを参照してください。 必要に応じて、Matcher.quoteReplacement(java.lang.String)を使用して、これらの文字に特別な意味を持たせないようにしてください。
regex - この文字列との一致を判定する正規表現replacement - 一致するものそれぞれに置き換えられる文字列StringPatternSyntaxException - 正規表現の構文が無効な場合Patternpublic String replace(CharSequence target, CharSequence replacement)
target - 置換されるchar値のシーケンスreplacement - char値の置換シーケンスpublic String[] split(String regex, int limit)
この文字列の各部分文字列を含むメソッドにより返される配列は、指定された式に一致する別の部分文字列、またはその文字列の最後で終了します。 配列内の部分文字列の順序は、この文字列内で出現する順序になります。 入力されたどの部分とも式が一致しない場合、配列は1つの要素(つまり、この文字列)だけを保持します。
この文字列の先頭に、正の幅のマッチがある場合、結果の配列の先頭に、空の先頭部分文字列が含まれます。 先頭のゼロの幅の一致では、そのような空の先頭の部分文字列は生成されません。
limitパラメータは、このパターンの適用回数を制御するため、結果となる配列の長さに影響を及ぼします。 制限nがゼロより大きい場合、このパターンは最大でn - 1回まで適用され、配列の長さはn以下となります。配列の最後のエントリには、最後に一致した区切り文字以降の入力シーケンスがすべて含まれます。 nが負の値の場合、このパターンの適用回数と配列の長さは制限されません。 nがゼロの場合、このパターンの適用回数と配列の長さは制限されませんが、後続の空の文字列は破棄されます。
たとえば、次のパラメータが指定された場合の、文字列"boo:and:foo"の結果を示します。
正規表現 制限 結果 : 2 { "boo", "and:foo" }: 5 { "boo", "and", "foo" }: -2 { "boo", "and", "foo" }o 5 { "b", "", ":and:f", "", "" }o -2 { "b", "", ":and:f", "", "" }o 0 { "b", "", ":and:f" }
このフォームのメソッド呼び出しstr.split(regex, n)では、次の式と同じ結果が得られます。
Pattern.compile(regex).split(str, n)
regex - 正規表現の区切りlimit - 結果のしきい値(上記を参照)PatternSyntaxException - 正規表現の構文が無効な場合Patternpublic String[] split(String regex)
このメソッドの動作は、2つの引数を取るsplitメソッドを、指定された式および制限引数ゼロを指定して呼び出した場合と同じになります。 つまり、結果として得られる配列には後続の空の文字列は含まれません。
たとえば、次の式が指定された場合の、文字列"boo:and:foo"の結果を示します。
正規表現 結果 : { "boo", "and", "foo" }o { "b", "", ":and:f" }
regex - 正規表現の区切りPatternSyntaxException - 正規表現の構文が無効な場合Patternpublic static String join(CharSequence delimiter, CharSequence... elements)
delimiterのコピーを使用して結合されたCharSequence要素のコピーからなる新しいStringを返します。
たとえば、要素がnullの場合は、String message = String.join("-", "Java", "is", "cool"); // message returned is: "Java-is-cool"
"null"が追加されることに注意してください。delimiter - 各要素を区切る区切り文字elements - 結合する要素。delimiterで区切られたelementsからなる新しいStringNullPointerException - delimiterまたはelementsがnullである場合StringJoinerpublic static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
delimiterのコピーを使用して結合されたCharSequence要素のコピーからなる新しいStringを返します。
たとえば、個々の要素がList<String> strings = new LinkedList<>(); strings.add("Java");strings.add("is"); strings.add("cool"); String message = String.join(" ", strings); //message returned is: "Java is cool" Set<String> strings = new LinkedHashSet<>(); strings.add("Java"); strings.add("is"); strings.add("very"); strings.add("cool"); String message = String.join("-", strings); //message returned is: "Java-is-very-cool"
nullの場合は、"null"が追加されることに注意してください。delimiter - 結果となるString内のelementsのそれぞれを区切るために使用される文字シーケンスelements - elementsが結合されるIterable。elements引数からなる新しいStringNullPointerException - delimiterまたはelementsがnullである場合join(CharSequence,CharSequence...), StringJoinerpublic String toLowerCase(Locale locale)
Localeのルールを使って、このString内のすべての文字を小文字に変換します。 ケース・マッピングは、Characterクラスで指定されたUnicode仕様バージョンに基づいています。 ケース・マッピングは常に1:1の文字マッピングになるとは限らないため、結果として得られるStringが元のStringと長さが異なる場合があります。
小文字のマッピング例を、次の表に示します。
| ロケールの言語コード | 大文字 | 小文字 | 説明 |
|---|---|---|---|
| tr (トルコ語) | \u0130 | \u0069 | 上に点が付いた大文字のI ->小文字のi |
| tr (トルコ語) | \u0049 | \u0131 | 大文字のI ->点のない小文字のi |
| (すべて) | French Fries | french fries | String内の文字すべてを小文字に変換 |
| (すべて) | ![]() ![]() ![]() |
![]() ![]() ![]() |
String内の文字すべてを小文字に変換 |
locale - このロケールの大文字小文字変換ルールを使用するString。toLowerCase(), toUpperCase(), toUpperCase(Locale)public String toLowerCase()
String内のすべての文字を小文字に変換します。 これは、toLowerCase(Locale.getDefault())の呼び出しと同等です。
ノート: このメソッドはロケールに依存するため、単独でロケールと解釈されるような文字列に使用すると、予期せぬ結果を引き起こすことがあります。 例として、プログラミング言語識別子、プロトコル・キー、HTMLタグがあります。 たとえば、トルコ語ロケールの"TITLE".toLowerCase()は"t\u0131tle"を返します。ここで、「\u0131」は点のないラテン小文字のIの文字です。 ロケールに依存しない文字列の正しい結果を取得するには、toLowerCase(Locale.ROOT)を使用します。
String。toLowerCase(Locale)public String toUpperCase(Locale locale)
Localeのルールを使って、このString内のすべての文字を大文字に変換します。 ケース・マッピングは、Characterクラスで指定されたUnicode仕様バージョンに基づいています。 ケース・マッピングは常に1:1の文字マッピングになるとは限らないため、結果として得られるStringが元のStringと長さが異なる場合があります。
ロケール依存および1:Mのケース・マッピングの例を、次の表に示します。
| ロケールの言語コード | 小文字 | 大文字 | 説明 |
|---|---|---|---|
| tr (トルコ語) | \u0069 | \u0130 | 小文字のi ->上に点が付いた大文字のI |
| tr (トルコ語) | \u0131 | \u0049 | 点のない小文字のi ->大文字のI |
| (すべて) | \u00df | \u0053 \u0053 | 小文字のシャープs -> SSの2文字 |
| (すべて) | Fahrvergnügen | FAHRVERGNÜGEN |
locale - このロケールの大文字小文字変換ルールを使用するString。toUpperCase(), toLowerCase(), toLowerCase(Locale)public String toUpperCase()
String内のすべての文字を大文字に変換します。 このメソッドは、toUpperCase(Locale.getDefault())と同等です。
ノート: このメソッドはロケールに依存するため、単独でロケールと解釈されるような文字列に使用すると、予期せぬ結果を引き起こすことがあります。 例として、プログラミング言語識別子、プロトコル・キー、HTMLタグがあります。 たとえば、トルコ語ロケールの"title".toUpperCase()は"T\u0130TLE"を返します。ここで、「\u0130」は上に点が付いたラテン大文字Iの文字です。 ロケールに依存しない文字列の正しい結果を取得するには、toUpperCase(Locale.ROOT)を使用します。
String。toUpperCase(Locale)public String trim()
このStringオブジェクトが空の文字列を表す場合、あるいはこのStringオブジェクトによって表される文字列の最初と最後の文字のコードが'\u0020' (スペース文字)より大きい場合は、このStringオブジェクトへの参照が返されます。
文字列内に'\u0020'より大きいコードの文字がない場合は、空の文字列を表すStringオブジェクトが返されます。
それ以外の場合、kを、文字列内で'\u0020'より大きいコードを持つ最初の文字のインデックス、mを、文字列内で'\u0020'より大きいコードを持つ最後の文字のインデックスであるとします。 インデックスkの文字で始まってインデックスmの文字で終わるこの文字列の部分文字列、つまりthis.substring(k, m + 1)の部分文字列を表すStringオブジェクトが返されます。
このメソッドは文字列の先頭と最後から(上記で定義された)空白を切り取るために使用できます。
public String toString()
toString、インタフェースCharSequencetoString、クラスObjectpublic char[] toCharArray()
public static String format(String format, Object... args)
常に使用されるロケールは、Locale.getDefault()により返されたものです。
format - 書式文字列args - 書式文字列の書式指示子により参照される引数。 書式指示子よりも引数が多い場合、余分な引数は無視される。 引数の数は変動し、ゼロの場合もある。 引数の最大数は、Java™仮想マシン仕様で定義されているJava配列の最大次元により制限される。 引数がnullの場合、動作は変換に応じて異なる。 IllegalFormatException - 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。 考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「詳細」セクションを参照。 Formatterpublic static String format(Locale l, String format, Object... args)
l - 書式設定時に適用するlocale。 lがnullの場合、ローカリゼーションは適用されない。 format - 書式文字列args - 書式文字列の書式指示子により参照される引数。 書式指示子よりも引数が多い場合、余分な引数は無視される。 引数の数は変動し、ゼロの場合もある。 引数の最大数は、Java™仮想マシン仕様で定義されているJava配列の最大次元により制限される。 引数がnullの場合、動作は変換に応じて異なる。 IllegalFormatException - 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。 考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「詳細」セクションを参照 Formatterpublic static String valueOf(Object obj)
Object引数の文字列表現を返します。obj - Object。nullの場合は"null"に等しい文字列。それ以外の場合はobj.toString()の値が返される。Object.toString()public static String valueOf(char[] data)
char配列引数の文字列表現を返します。 文字配列の内容がコピーされます。コピー後にその文字配列が変更されても、返される文字列には影響しません。 data - 文字配列。String。public static String valueOf(char[] data, int offset, int count)
char配列引数の特定の部分配列の文字列表現を返します。
offset引数は部分配列の最初の文字のインデックスを表します。 count引数は部分配列の長さを表します。 部分配列の内容がコピーされます。コピー後に文字配列が変更されても、返される文字列には影響しません。
data - 文字配列。offset - 部分配列の初期オフセット。count - 部分配列の長さ。String。IndexOutOfBoundsException - offsetが負の値の場合、countが負の値の場合、あるいはoffset+countがdata.lengthよりも大きい場合。public static String copyValueOf(char[] data, int offset, int count)
data - 文字配列。offset - 部分配列の初期オフセット。count - 部分配列の長さ。String。IndexOutOfBoundsException - offsetが負の値の場合、countが負の値の場合、あるいはoffset+countがdata.lengthよりも大きい場合。public static String copyValueOf(char[] data)
valueOf(char[])と同等です。data - 文字配列。String。public static String valueOf(boolean b)
boolean引数の文字列表現を返します。b - boolean。trueの場合は"true"に等しい文字列が返され、そうでない場合は"false"に等しい文字列が返される。public static String valueOf(char c)
char引数の文字列表現を返します。c - char。cが格納された、長さ1の文字列。public static String valueOf(int i)
int引数の文字列表現を返します。
この表現は1つの引数を持つInteger.toStringメソッドによって返されるものとまったく同じです。
i - int。int引数の文字列表現。Integer.toString(int, int)public static String valueOf(long l)
long引数の文字列表現を返します。
この表現は1つの引数を持つLong.toStringメソッドによって返されるものとまったく同じです。
l - long。long引数の文字列表現。Long.toString(long)public static String valueOf(float f)
float引数の文字列表現を返します。
この表現は1つの引数を持つFloat.toStringメソッドによって返されるものとまったく同じです。
f - float。float引数の文字列表現。Float.toString(float)public static String valueOf(double d)
double引数の文字列表現を返します。
この表現は1つの引数を持つDouble.toStringメソッドによって返されるものとまったく同じです。
d - double。double引数の文字列表現。Double.toString(double)public String intern()
文字列のプールは、初期状態では空で、クラスStringによってプライベートに保持されます。
internメソッドが呼び出されたときに、equals(Object)メソッドによってこのStringオブジェクトに等しいと判定される文字列がプールにすでにあった場合は、プール内の該当する文字列が返されます。 そうでない場合は、このStringオブジェクトがプールに追加され、このStringオブジェクトへの参照が返されます。
したがって、任意の2つの文字列sとtについて、s.intern() == t.intern()がtrueになるのは、s.equals(t)がtrueの場合だけです。
すべてのリテラル文字列および文字列値定数式が保持されます。 文字列リテラルは、『Java™言語仕様』のセクション3.10.5で定義されています。
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。