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()
|
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, codePoints
public 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 String
public 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 StringBuffer
public String(StringBuilder builder)
このコンストラクタの提供目的は、StringBuilder
に移行しやすくすることです。toString
メソッドを使って文字列ビルダーから文字列を取得することは、処理が高速になるので一般的に推奨されています。
builder
-AStringBuilder
public int length()
length
、インタフェース: CharSequence
public boolean isEmpty()
length()
が0
の場合はtrue
、それ以外の場合はfalse
public char charAt(int index)
char
値を返します。インデックスの範囲は0
からlength() - 1
までです。配列のインデックス付けの場合と同じように、シーケンスの最初のchar
のインデックスは0
、次の文字のインデックスは1
と続きます。
インデックスで指定されたchar
値がサロゲートの場合、サロゲート値が返されます。
charAt
、インタフェース: CharSequence
index
- 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
、クラス: Object
anObject
- このString
と比較するオブジェクトString
を表す場合はtrue
、それ以外の場合はfalse
compareTo(String)
, equalsIgnoreCase(String)
public boolean contentEquals(StringBuffer sb)
StringBuffer
を比較します。結果がtrue
になるのは、このString
が指定されたStringBuffer
と同じ文字シーケンスを表す場合だけです。このメソッドは、StringBuffer
との同期をとります。sb
- このString
と比較するStringBuffer
String
が、指定されたStringBuffer
と同じ文字シーケンスを表す場合はtrue
。そうでない場合はfalse
public boolean contentEquals(CharSequence cs)
CharSequence
を比較します。このString
が、指定されたシーケンスと同じ文字値シーケンスを表す場合にだけ、結果がtrue
になります。CharSequence
がStringBuffer
である場合、このメソッドはそれとの同期をとるので注意してください。cs
- このString
と比較されるシーケンスString
が、指定されたシーケンスと同じ文字値シーケンスを表す場合はtrue
。そうでない場合はfalse
public boolean equalsIgnoreCase(String anotherString)
String
を別のString
と比較します。長さが同じで、2つの文字列内の対応する文字が大文字と小文字の区別なしで等しい場合、2つの文字列は大文字と小文字の区別なしで等しいと見なされます。
次のどれかに該当する場合に、c1
とc2
という2つの文字は大文字小文字の区別なしで等しいと見なされます。
==
演算子による比較)
Character.toUpperCase(char)
メソッドをそれぞれの文字に適用すると同じ結果になる
Character.toLowerCase(char)
メソッドをそれぞれの文字に適用すると同じ結果になる
anotherString
- このString
と比較するString
null
でなく、同等のString
(大文字と小文字の区別なし)を表す場合はtrue
、それ以外の場合はfalse
equals(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
、クラス: Object
Object.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
、インタフェース: CharSequence
String
クラスが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
- 正規表現の構文が無効な場合Pattern
public 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
- 最初に一致するものに置き換えられる文字列String
PatternSyntaxException
- 正規表現の構文が無効な場合Pattern
public 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
- 一致するものそれぞれに置き換えられる文字列String
PatternSyntaxException
- 正規表現の構文が無効な場合Pattern
public 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
- 正規表現の構文が無効な場合Pattern
public String[] split(String regex)
このメソッドの動作は、2つの引数を取るsplit
メソッドを、指定された式および制限引数ゼロを指定して呼び出した場合と同じになります。つまり、結果として得られる配列には後続の空の文字列は含まれません。
たとえば、次の式が指定された場合の、文字列"boo:and:foo"
の結果を示します。
正規表現 結果 : { "boo", "and", "foo" }
o { "b", "", ":and:f" }
regex
- 正規表現の区切りPatternSyntaxException
- 正規表現の構文が無効な場合Pattern
public 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
からなる新しいString
NullPointerException
- delimiter
またはelements
がnull
である場合StringJoiner
public 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
引数からなる新しいString
NullPointerException
- delimiter
またはelements
がnull
である場合join(CharSequence,CharSequence...)
, StringJoiner
public 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
、インタフェース: CharSequence
toString
、クラス: Object
public char[] toCharArray()
public static String format(String format, Object... args)
常に使用されるロケールは、Locale.getDefault()
により返されたものです。
format
- 書式文字列args
- 書式文字列の書式指示子により参照される引数。書式指示子よりも引数が多い場合、余分な引数は無視される。引数の数は変動し、ゼロの場合もある。引数の最大数は、Java(tm)仮想マシン仕様で定義されているJava配列の最大次元により制限される。引数がnull
の場合、動作は変換に応じて異なる。IllegalFormatException
- 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「詳細」セクションを参照。Formatter
public static String format(Locale l, String format, Object... args)
l
- 書式設定時に適用するlocale。l
がnull
の場合、ローカリゼーションは適用されない。format
- 書式文字列args
- 書式文字列の書式指示子により参照される引数。書式指示子よりも引数が多い場合、余分な引数は無視される。引数の数は変動し、ゼロの場合もある。引数の最大数は、Java(tm)仮想マシン仕様で定義されているJava配列の最大次元により制限される。引数がnull
の場合、動作は変換に応じて異なる。IllegalFormatException
- 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「詳細」セクションを参照Formatter
public 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(tm)言語仕様』のセクション3.10.5で定義されています。
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.