- java.lang.Object
 - 
- java.lang.String
 
 
- 
- すべての実装されたインタフェース:
 Serializable,CharSequence,Comparable<String>
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言語は、文字列連結演算子( + )、およびその他のオブジェクトから文字列への変換に対する特別なサポートを提供します。 文字列の連結と変換の詳細については、「Java™言語仕様」を参照してください。
ほかで指定がない場合、
null引数をコンストラクタまたはこのクラスのメソッドへ渡すと、NullPointerExceptionがスローされます。Stringは、補助文字をサロゲート・ペアで表現するUTF-16形式の文字列を表します(詳細は、Characterクラスの「Unicode文字表現」セクションを参照)。charコード単位を参照するインデックス値です。したがって、補助文字はStringの2つの位置を使用します。Stringクラスは、Unicodeコード単位(char値)を扱うメソッドのほかに、Unicodeコード・ポイント(文字)を扱うメソッドを提供します。特に明記されていない限り、文字列を比較するメソッドはロケールを考慮しません。
Collatorクラスは、細かい粒度のロケール依存のString比較のためのメソッドを提供します。- 実装上の注意:
 - コンパイラが最終的に「Java™言語仕様」に準拠している限り、文字列連結演算子の実装はJavaコンパイラの裁量に委ねられます。 たとえば、
javacコンパイラは、JDKのバージョンに応じて、StringBuffer、StringBuilder、またはjava.lang.invoke.StringConcatFactoryを使用して演算子を実装できます。 文字列変換の実装は、通常、Objectによって定義され、Javaのすべてのクラスによって継承されるメソッドtoStringによって行われます。 - 導入されたバージョン:
 - 1.0
 - 関連項目:
 Object.toString(),StringBuffer,StringBuilder,Charset, 直列化された形式- Java™言語仕様:
 - 15.18.1文字列連結演算子+
 
 
- 
- 
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static Comparator<String>CASE_INSENSITIVE_ORDERcompareToIgnoreCaseの場合と同じようにStringオブジェクトを順序付けるComparatorです。 
- 
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 String()新しく生成されたStringオブジェクトを初期化して、空の文字シーケンスを表すようにします。String(byte[] bytes)プラットフォームのデフォルトの文字セットを使用して、指定されたバイト配列を復号化することによって、新しいStringを構築します。String(byte[] ascii, int hibyte)非推奨。このメソッドでは、バイトから文字への変換が正しく行われません。String(byte[] bytes, int offset, int length)プラットフォームのデフォルトの文字セットを使用して、指定されたバイト部分配列を復号化することによって、新しいStringを構築します。String(byte[] ascii, int hibyte, int offset, int count)非推奨。このメソッドでは、バイトから文字への変換が正しく行われません。String(byte[] bytes, int offset, int length, String charsetName)指定された文字セットを使用して、指定されたバイト部分配列をデコードすることによって、新しいStringを構築します。String(byte[] bytes, int offset, int length, Charset charset)指定された文字セットを使用して、指定された部分バイト配列を復号化することにより、新しいStringを構築します。String(byte[] bytes, String charsetName)指定された文字セットを使用して、指定されたバイト配列を復号化することにより、新しいStringを構築します。String(byte[] bytes, Charset charset)指定された文字セットを使用して、指定されたバイト配列を復号化することにより、新しい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)文字列ビルダー引数に現在含まれている文字列を持つ新しい文字列を割り当てます。 
- 
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 charcharAt(int index)指定されたインデックスのchar値を返します。IntStreamchars()このシーケンスのchar値をゼロ拡張したintを含むストリームを返します。intcodePointAt(int index)指定されたインデックス位置の文字(Unicodeコード・ポイント)を返します。intcodePointBefore(int index)指定されたインデックスの前の文字(Unicodeコード・ポイント)を返します。intcodePointCount(int beginIndex, int endIndex)このStringの指定されたテキスト範囲のUnicodeコード・ポイントの数を返します。IntStreamcodePoints()このシーケンスからコード・ポイント値のストリームを返します。intcompareTo(String anotherString)2つの文字列を辞書的に比較します。intcompareToIgnoreCase(String str)大文字と小文字の区別なしで、2つの文字列を辞書的に比較します。Stringconcat(String str)指定された文字列をこの文字列の最後に連結します。booleancontains(CharSequence s)この文字列が指定されたchar値のシーケンスを含む場合に限りtrueを返します。booleancontentEquals(CharSequence cs)この文字列と指定されたCharSequenceを比較します。booleancontentEquals(StringBuffer sb)この文字列と指定されたStringBufferを比較します。static StringcopyValueOf(char[] data)valueOf(char[])と同等です。static StringcopyValueOf(char[] data, int offset, int count)booleanendsWith(String suffix)この文字列が、指定された接尾辞で終るかどうかを判定します。booleanequals(Object anObject)この文字列と指定されたオブジェクトを比較します。booleanequalsIgnoreCase(String anotherString)大文字と小文字を区別せずに、このStringを別のStringと比較します。static Stringformat(String format, Object... args)指定された書式の文字列と引数を使って、書式付き文字列を返します。static Stringformat(Locale l, String format, Object... args)指定されたロケール、書式文字列、および引数を使って、フォーマットされた文字列を返します。byte[]getBytes()プラットフォームのデフォルトの文字セットを使用してこのStringをバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納します。voidgetBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)非推奨。このメソッドでは、文字からバイトへの変換が正しく行われません。byte[]getBytes(String charsetName)指定された文字セットを使用してこのStringをバイト・シーケンスにエンコードし、結果を新規バイト配列に格納します。byte[]getBytes(Charset charset)指定された文字セットを使用してこのStringをバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納します。voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)この文字列から、コピー先の文字配列に文字をコピーします。inthashCode()この文字列のハッシュ・コードを返します。intindexOf(int ch)この文字列内で、指定された文字が最初に出現する位置のインデックスを返します。intindexOf(int ch, int fromIndex)この文字列内で、指定されたインデックスから検索を開始し、指定された文字が最初に出現する位置のインデックスを返します。intindexOf(String str)この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。intindexOf(String str, int fromIndex)指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。Stringintern()文字列オブジェクトの正準表現を返します。booleanisEmpty()length()が0の場合にのみ、trueを返します。static Stringjoin(CharSequence delimiter, CharSequence... elements)指定されたdelimiterのコピーを使用して結合されたCharSequence要素のコピーからなる新しいStringを返します。static Stringjoin(CharSequence delimiter, Iterable<? extends CharSequence> elements)指定されたdelimiterのコピーを使用して結合されたCharSequence要素のコピーからなる新しいStringを返します。intlastIndexOf(int ch)この文字列内で、指定された文字が最後に出現する位置のインデックスを返します。intlastIndexOf(int ch, int fromIndex)この文字列内で、指定された文字が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先頭方向に行われる)。intlastIndexOf(String str)この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。intlastIndexOf(String str, int fromIndex)この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先頭方向に行われる)。intlength()この文字列の長さを返します。booleanmatches(String regex)この文字列が、指定された正規表現と一致するかどうかを判定します。intoffsetByCodePoints(int index, int codePointOffset)このString内で、指定されたindexからcodePointOffsetコード・ポイント分だけオフセットされた位置のインデックスを返します。booleanregionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)2つの文字列領域が等しいかどうかを判定します。booleanregionMatches(int toffset, String other, int ooffset, int len)2つの文字列領域が等しいかどうかを判定します。Stringreplace(char oldChar, char newChar)この文字列内にあるすべてのoldCharをnewCharに置換した結果生成される文字列を返します。Stringreplace(CharSequence target, CharSequence replacement)リテラル・ターゲット・シーケンスに一致するこの文字列の部分文字列を、指定されたリテラル置換シーケンスに置き換えます。StringreplaceAll(String regex, String replacement)指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行します。StringreplaceFirst(String regex, String replacement)指定された正規表現に一致する、この文字列の最初の部分文字列に対し、指定された置換を実行します。String[]split(String regex)この文字列を、指定された正規表現に一致する位置で分割します。String[]split(String regex, int limit)この文字列を、指定された正規表現に一致する位置で分割します。booleanstartsWith(String prefix)この文字列が、指定された接頭辞で始まるかどうかを判定します。booleanstartsWith(String prefix, int toffset)この文字列の指定されたインデックス以降の部分文字列が、指定された接頭辞で始まるかどうかを判定します。CharSequencesubSequence(int beginIndex, int endIndex)このシーケンスのサブシーケンスである文字シーケンスを返します。Stringsubstring(int beginIndex)この文字列の部分文字列である文字列を返します。Stringsubstring(int beginIndex, int endIndex)この文字列の部分文字列である文字列を返します。char[]toCharArray()この文字列を新しい文字配列に変換します。StringtoLowerCase()デフォルト・ロケールのルールを使って、このString内のすべての文字を小文字に変換します。StringtoLowerCase(Locale locale)指定されたLocaleのルールを使って、このString内のすべての文字を小文字に変換します。StringtoString()このオブジェクト(これはすでに文字列です!)StringtoUpperCase()デフォルト・ロケールのルールを使って、このString内のすべての文字を大文字に変換します。StringtoUpperCase(Locale locale)指定されたLocaleのルールを使って、このString内のすべての文字を大文字に変換します。Stringtrim()値がこの文字列である文字列を返します(先頭と末尾の空白は削除される)。static StringvalueOf(boolean b)boolean引数の文字列表現を返します。static StringvalueOf(char c)char引数の文字列表現を返します。static StringvalueOf(char[] data)char配列引数の文字列表現を返します。static StringvalueOf(char[] data, int offset, int count)char配列引数の特定の部分配列の文字列表現を返します。static StringvalueOf(double d)double引数の文字列表現を返します。static StringvalueOf(float f)float引数の文字列表現を返します。static StringvalueOf(int i)int引数の文字列表現を返します。static StringvalueOf(long l)long引数の文字列表現を返します。static StringvalueOf(Object obj)Object引数の文字列表現を返します。 
 - 
 
- 
- 
フィールドの詳細
- 
CASE_INSENSITIVE_ORDER
public static final Comparator<String> CASE_INSENSITIVE_ORDER
compareToIgnoreCaseの場合と同じようにStringオブジェクトを順序付けるComparatorです。 このコンパレータは直列化可能です。このComparatorはロケールを考慮しないので、一部のロケールでは、正しい順序に並べられないことがあります。
Collatorクラスはロケールに依存した比較を提供します。- 導入されたバージョン:
 - 1.2
 - 関連項目:
 Collator
 
 - 
 
- 
コンストラクタの詳細
- 
String
public String()
新しく生成されたStringオブジェクトを初期化して、空の文字シーケンスを表すようにします。 Stringは不変なので、このコンストラクタを使う必要はありません。 
- 
String
public String(String original)
新しく生成されたStringオブジェクトを初期化して、引数と同じ文字シーケンスを表すようにします。つまり、新しく作成された文字列は引数文字列のコピーになります。 Stringは不変なので、originalの明示的なコピーが必要でないかぎり、このコンストラクタを使う必要はありません。- パラメータ:
 original-AString
 
- 
String
public String(char[] value)
新しいStringを割り当てて、これが文字配列引数に現在含まれている文字シーケンスを表すようにします。 文字配列の内容がコピーされます。コピー後にその文字が変更されても、新しく作成された文字列には影響しません。- パラメータ:
 value- 文字列の初期値
 
- 
String
public String(char[] value, int offset, int count)文字配列引数の部分配列からなる文字を含む新しいStringを割り当てます。 引数offsetは部分配列の先頭の文字のインデックスであり、引数countは部分配列の長さを指定します。 部分配列の内容がコピーされます。コピー後に文字配列が変更されても、新しく作成された文字列には影響しません。- パラメータ:
 value- 文字列のソースである配列offset- 初期オフセットcount- 長さ- 例外:
 IndexOutOfBoundsException-offsetが負の場合、countは負であるか、またはoffsetがvalue.length - countより大きい
 
- 
String
public String(int[] codePoints, int offset, int count)Unicodeコード・ポイント配列引数の部分配列からなる文字を含む新しいStringを割り当てます。 引数offsetは部分配列の先頭のコード・ポイントのインデックスであり、引数countは部分配列の長さを指定します。 部分配列の内容がcharに変換されます。変換後にint配列が変更されても、新しく作成された文字列には影響しません。- パラメータ:
 codePoints- Unicodeコード・ポイントのソースである配列offset- 初期オフセットcount- 長さ- 例外:
 IllegalArgumentException-codePointsで無効なUnicodeコード・ポイントが見つかった場合IndexOutOfBoundsException-offsetが負の場合、countは負であるか、またはoffsetがcodePoints.length - countより大きい- 導入されたバージョン:
 - 1.5
 
 
- 
String
@Deprecated(since="1.1") public String(byte[] ascii, int hibyte, int offset, int count)
非推奨。このメソッドでは、バイトから文字への変換が正しく行われません。 JDK 1.1以降では、これを行うには、Charset(文字セットの名前)を取る、またはプラットフォームのデフォルト文字セットを使用するStringコンストラクタの使用が推奨されます。8ビット整数値配列の部分配列によって構築される新しいStringを割り当てます。引数
offsetは部分配列の先頭のバイトのインデックスであり、引数countは部分配列の長さを指定します。サブアレイ内の各
byteは、String(byte[],int)コンストラクタで指定されたcharに変換されます。- パラメータ:
 ascii- 文字列に変換されるバイトhibyte- 16ビットの各Unicodeコード単位の上位8ビットoffset- 初期オフセットcount- 長さ- 例外:
 IndexOutOfBoundsException-offsetが負の場合、countは負であるか、またはoffsetがascii.length - 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[])
 
- 
String
@Deprecated(since="1.1") public String(byte[] ascii, int hibyte)
非推奨。このメソッドでは、バイトから文字への変換が正しく行われません。 JDK 1.1以降では、これを行うには、Charset(文字セットの名前)を取る、またはプラットフォームのデフォルト文字セットを使用するStringコンストラクタの使用が推奨されます。8ビット整数値の配列からなる文字を持つ新しい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[])
 
- 
String
public String(byte[] bytes, int offset, int length, String charsetName) throws UnsupportedEncodingException指定された文字セットを使用して、指定されたバイト部分配列をデコードすることによって、新しいStringを構築します。 新しいStringの長さは文字セットによって変化するため、部分配列長と一致しないことがあります。指定された文字セットで指定されたバイトが無効な場合、このコンストラクタの動作は指定されません。 デコード処理をより強力に制御する必要がある場合、
CharsetDecoderクラスを使用する必要があります。- パラメータ:
 bytes- 文字列に復号化されるバイトoffset- 復号化される先頭バイトのインデックスlength- 復号化するバイト数charsetName- サポートされているcharsetの名前- 例外:
 UnsupportedEncodingException- 指定された文字セットがサポートされていない場合IndexOutOfBoundsException-offsetが負の場合、lengthは負であるか、またはoffsetがbytes.length - lengthより大きい- 導入されたバージョン:
 - 1.1
 
 
- 
String
public String(byte[] bytes, int offset, int length, Charset charset)指定された文字セットを使用して、指定された部分バイト配列を復号化することにより、新しいStringを構築します。 新しいStringの長さは文字セットによって変化するため、部分配列長と一致しないことがあります。このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、この文字セットのデフォルトの置換文字列で置き換えます。 デコード処理をより強力に制御する必要がある場合、
CharsetDecoderクラスを使用する必要があります。- パラメータ:
 bytes- 文字列に復号化されるバイトoffset- 復号化される先頭バイトのインデックスlength- 復号化するバイト数charset-bytesの復号化に使用される文字セット- 例外:
 IndexOutOfBoundsException-offsetが負の場合、lengthは負であるか、またはoffsetがbytes.length - lengthより大きい- 導入されたバージョン:
 - 1.6
 
 
- 
String
public String(byte[] bytes, String charsetName) throws UnsupportedEncodingException指定された文字セットを使用して、指定されたバイト配列を復号化することにより、新しいStringを構築します。 新しいStringの長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。指定された文字セットで指定されたバイトが無効な場合、このコンストラクタの動作は指定されません。 デコード処理をより強力に制御する必要がある場合、
CharsetDecoderクラスを使用する必要があります。- パラメータ:
 bytes- 文字列に復号化されるバイトcharsetName- サポートされているcharsetの名前- 例外:
 UnsupportedEncodingException- 指定された文字セットがサポートされていない場合- 導入されたバージョン:
 - 1.1
 
 
- 
String
public String(byte[] bytes, Charset charset)指定された文字セットを使用して、指定されたバイト配列を復号化することにより、新しいStringを構築します。 新しいStringの長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、この文字セットのデフォルトの置換文字列で置き換えます。 デコード処理をより強力に制御する必要がある場合、
CharsetDecoderクラスを使用する必要があります。- パラメータ:
 bytes- 文字列に復号化されるバイトcharset-bytesの復号化に使用される文字セット- 導入されたバージョン:
 - 1.6
 
 
- 
String
public String(byte[] bytes, int offset, int length)プラットフォームのデフォルトの文字セットを使用して、指定されたバイト部分配列を復号化することによって、新しいStringを構築します。 新しいStringの長さは文字セットによって変化するため、部分配列長と一致しないことがあります。指定されたバイトがデフォルトの文字セットで無効な場合、このコンストラクタの動作は指定されません。 デコード処理をより強力に制御する必要がある場合、
CharsetDecoderクラスを使用する必要があります。- パラメータ:
 bytes- 文字列に復号化されるバイトoffset- 復号化される先頭バイトのインデックスlength- 復号化するバイト数- 例外:
 IndexOutOfBoundsException-offsetが負の場合、lengthは負であるか、またはoffsetがbytes.length - lengthより大きい- 導入されたバージョン:
 - 1.1
 
 
- 
String
public String(byte[] bytes)
プラットフォームのデフォルトの文字セットを使用して、指定されたバイト配列を復号化することによって、新しいStringを構築します。 新しいStringの長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。指定されたバイトがデフォルトの文字セットで無効な場合、このコンストラクタの動作は指定されません。 デコード処理をより強力に制御する必要がある場合、
CharsetDecoderクラスを使用する必要があります。- パラメータ:
 bytes- 文字列に復号化されるバイト- 導入されたバージョン:
 - 1.1
 
 
- 
String
public String(StringBuffer buffer)
文字列バッファ引数に現在含まれている文字列を持つ新しい文字列を構築します。 文字列バッファの内容がコピーされます。コピー後に文字列バッファが変更されても、新しく作成された文字列には影響しません。- パラメータ:
 buffer-AStringBuffer
 
- 
String
public String(StringBuilder builder)
文字列ビルダー引数に現在含まれている文字列を持つ新しい文字列を割り当てます。 文字列ビルダーの内容がコピーされます。コピー後に文字列ビルダーが変更されても、新しく作成された文字列には影響しません。このコンストラクタの提供目的は、
StringBuilderに移行しやすくすることです。toStringメソッドを使って文字列ビルダーから文字列を取得することは、処理が高速になるので一般的に推奨されています。- パラメータ:
 builder-AStringBuilder- 導入されたバージョン:
 - 1.5
 
 
 - 
 
- 
メソッドの詳細
- 
length
public int length()
この文字列の長さを返します。 長さは文字列内のUnicodeコード単位の数に等しくなります。- 定義:
 length、インタフェース:CharSequence- 戻り値:
 - このオブジェクトによって表される文字シーケンスの長さ。
 
 
- 
isEmpty
public boolean isEmpty()
length()が0の場合にのみ、trueを返します。- 戻り値:
 length()が0の場合はtrue、それ以外の場合はfalse- 導入されたバージョン:
 - 1.6
 
 
- 
charAt
public char charAt(int index)
指定されたインデックスのchar値を返します。 インデックスの範囲は0からlength() - 1までです。 配列のインデックス付けの場合と同じように、シーケンスの最初のcharのインデックスは0、次の文字のインデックスは1と続きます。インデックスで指定された
char値がサロゲートの場合、サロゲート値が返されます。- 定義:
 charAt、インタフェース:CharSequence- パラメータ:
 index-char値のインデックス。- 戻り値:
 - 文字列内の指定されたインデックス位置にある
char値。 最初のchar値のインデックスが0になる。 - 例外:
 IndexOutOfBoundsException-index引数が負の値、または文字列の長さと同じかこれより大きい値の場合。
 
- 
codePointAt
public int codePointAt(int index)
指定されたインデックス位置の文字(Unicodeコード・ポイント)を返します。 インデックスは、char値(Unicodeコード単位)を指し、0からlength()- 1までの範囲です。指定されたインデックス位置の指定された
char値が上位サロゲート範囲に含まれており、それに続くインデックスがStringの長さ未満であり、かつそのインデックス位置のchar値が下位サロゲート範囲に含まれている場合、このサロゲート・ペアに対応する補助コード・ポイントが返されます。 それ以外の場合は、指定されたインデックスにあるchar値が返されます。- パラメータ:
 index-char値へのインデックス- 戻り値:
 - 指定された
indexにある文字のコード・ポイント値 - 例外:
 IndexOutOfBoundsException-index引数が負の値、または文字列の長さと同じかこれより大きい値の場合。- 導入されたバージョン:
 - 1.5
 
 
- 
codePointBefore
public int codePointBefore(int index)
指定されたインデックスの前の文字(Unicodeコード・ポイント)を返します。 インデックスはchar値(Unicodeコード単位)を参照し、その範囲は1-lengthになります。(index - 1)のchar値が下位サロゲート範囲に含まれており、(index - 2)が負でなく、かつ(index - 2)のchar値が上位サロゲートに含まれている場合、そのサロゲート・ペアの補助コード・ポイント値が返されます。index - 1のchar値が、ペアになっていない下位サロゲートであるか、または上位サロゲートである場合、そのサロゲート値が返されます。- パラメータ:
 index- 返すべきコード・ポイントの直後のインデックス- 戻り値:
 - 指定されたインデックスの前にあるUnicodeコード・ポイント値。
 - 例外:
 IndexOutOfBoundsException-index引数が1未満であるか、またはこの文字列の長さより大きい値の場合。- 導入されたバージョン:
 - 1.5
 
 
- 
codePointCount
public int codePointCount(int beginIndex, int endIndex)このStringの指定されたテキスト範囲のUnicodeコード・ポイントの数を返します。 テキスト範囲は、指定されたbeginIndexからインデックスendIndex - 1の位置のcharまでです。 したがって、テキスト範囲の長さ(char数)は、endIndex-beginIndexになります。 テキスト範囲内でペアになっていないサロゲートは、それぞれ1つのコード・ポイントとして数えられます。- パラメータ:
 beginIndex- テキスト範囲内の最初のcharへのインデックス。endIndex- テキスト範囲内の最後のcharの直後のインデックス。- 戻り値:
 - 指定されたテキスト範囲内のUnicodeコード・ポイントの数
 - 例外:
 IndexOutOfBoundsException-beginIndexが負であるか、endIndexがこのStringの長さより大きいか、あるいはbeginIndexがendIndexより大きい場合。- 導入されたバージョン:
 - 1.5
 
 
- 
offsetByCodePoints
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コード・ポイントの絶対値よりも小さい場合。- 導入されたバージョン:
 - 1.5
 
 
- 
getChars
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が次より大きい:srcEndsrcEndがこの文字列の長さより大きいdstBeginが負であるdstBegin+(srcEnd-srcBegin)が次より大きい:dst.length
 
- 
getBytes
@Deprecated(since="1.1") public void getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
非推奨。このメソッドでは、文字からバイトへの変換が正しく行われません。 JDK 1.1では、文字からバイトへの変換には、プラットフォームのデフォルト文字セットを使用するgetBytes()メソッドの使用が推奨されます。この文字列から、転送先のバイト配列に文字をコピーします。 各バイトは対応する文字の下位8ビットを受け取ります。 各文字の上位8ビットはコピーされず、転送されることはありません。コピーする最初の文字はインデックス
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 
-  
 
 
- 
getBytes
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
指定された文字セットを使用してこのStringをバイト・シーケンスにエンコードし、結果を新規バイト配列に格納します。指定された文字セットでこの文字列をエンコードできない場合、このメソッドの動作は指定されません。 エンコード処理をより強力に制御する必要がある場合は、
CharsetEncoderクラスを使用してください。- パラメータ:
 charsetName- サポートされているcharsetの名前- 戻り値:
 - 結果のバイト配列
 - 例外:
 UnsupportedEncodingException- 指定された文字セットがサポートされていない場合- 導入されたバージョン:
 - 1.1
 
 
- 
getBytes
public byte[] getBytes(Charset charset)
指定された文字セットを使用してこのStringをバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納します。このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、この文字セットのデフォルトの置換バイト配列で置き換えます。 エンコード処理をより強力に制御する必要がある場合は、
CharsetEncoderクラスを使用してください。- パラメータ:
 charset-Stringのエンコード化に使用されるCharset- 戻り値:
 - 結果のバイト配列
 - 導入されたバージョン:
 - 1.6
 
 
- 
getBytes
public byte[] getBytes()
プラットフォームのデフォルトの文字セットを使用してこのStringをバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納します。デフォルトの文字セットでこの文字列をエンコード化できない場合、このメソッドの動作は指定されません。 エンコード処理をより強力に制御する必要がある場合は、
CharsetEncoderクラスを使用してください。- 戻り値:
 - 結果のバイト配列
 - 導入されたバージョン:
 - 1.1
 
 
- 
equals
public boolean equals(Object anObject)
この文字列と指定されたオブジェクトを比較します。 引数がnullではなく、このオブジェクトと同じ文字シーケンスを表すStringオブジェクトである場合にだけ、結果はtrueになります。細かい文字列の比較については、
Collatorを参照してください。- オーバーライド:
 equals、クラス:Object- パラメータ:
 anObject- このStringと比較するオブジェクト- 戻り値:
 - 指定されたオブジェクトがこの文字列に等しい
Stringを表す場合はtrue、それ以外の場合はfalse - 関連項目:
 compareTo(String),equalsIgnoreCase(String)
 
- 
contentEquals
public boolean contentEquals(StringBuffer sb)
この文字列と指定されたStringBufferを比較します。 結果がtrueになるのは、このStringが指定されたStringBufferと同じ文字シーケンスを表す場合だけです。 このメソッドは、StringBufferとの同期をとります。細かい文字列の比較については、
Collatorを参照してください。- パラメータ:
 sb- このStringと比較するStringBuffer- 戻り値:
 - この
Stringが、指定されたStringBufferと同じ文字シーケンスを表す場合はtrue。そうでない場合はfalse - 導入されたバージョン:
 - 1.4
 
 
- 
contentEquals
public boolean contentEquals(CharSequence cs)
この文字列と指定されたCharSequenceを比較します。 このStringが、指定されたシーケンスと同じ文字値シーケンスを表す場合にだけ、結果がtrueになります。CharSequenceがStringBufferである場合、このメソッドはそれとの同期をとるので注意してください。細かい文字列の比較については、
Collatorを参照してください。- パラメータ:
 cs- このStringと比較されるシーケンス- 戻り値:
 - この
Stringが、指定されたシーケンスと同じ文字値シーケンスを表す場合はtrue。そうでない場合はfalse - 導入されたバージョン:
 - 1.5
 
 
- 
equalsIgnoreCase
public boolean equalsIgnoreCase(String anotherString)
大文字と小文字を区別せずに、このStringを別のStringと比較します。 長さが同じで、2つの文字列内の対応する文字が大文字と小文字の区別なしで等しい場合、2つの文字列は大文字と小文字の区別なしで等しいと見なされます。次のどれかに該当する場合に、
c1とc2という2つの文字は大文字小文字の区別なしで等しいと見なされます。-  2つの文字が等しい(
==演算子による比較) -  各文字に対して
Character.toLowerCase(Character.toUpperCase(char))を呼び出すと同じ結果が得られます 
このメソッドはロケールを考慮せず、特定のロケールでは結果が不満足になることに注意してください。
Collatorクラスはロケールに依存した比較を提供します。- パラメータ:
 anotherString- このStringと比較するString- 戻り値:
 - 引数が
nullでなく、同等のString(大文字と小文字の区別なし)を表す場合はtrue、それ以外の場合はfalse - 関連項目:
 equals(Object)
 -  2つの文字が等しい(
 
- 
compareTo
public int compareTo(String anotherString)
2つの文字列を辞書的に比較します。 比較は文字列内のそれぞれの文字のUnicode値に基づいて行われます。 この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()
細かい文字列の比較については、
Collatorを参照してください。- 定義:
 compareTo、インタフェース:Comparable<String>- パラメータ:
 anotherString- 比較対象のString。- 戻り値:
 - 引数文字列がこの文字列に等しい場合は、値
0。この文字列が文字列引数より辞書式に小さい場合は、0より小さい値。この文字列が文字列引数より辞書式に大きい場合は、0より大きい値。 
 
- 
compareToIgnoreCase
public int compareToIgnoreCase(String str)
大文字と小文字の区別なしで、2つの文字列を辞書的に比較します。 このメソッドは、文字列の正規化バージョンでcompareToを呼び出して得られた符号を持つ整数を返します。ここでは、各文字でCharacter.toLowerCase(Character.toUpperCase(character))を呼び出すことで大文字と小文字の違いがなくなります。このメソッドはロケールを考慮しないので、一部のロケールでは、正しい順序に並べられないことがあります。
Collatorクラスはロケールに依存した比較を提供します。- パラメータ:
 str- 比較対象のString。- 戻り値:
 - 大文字と小文字の区別なしで、指定されたStringがこのStringより大きい場合は負の整数、同じ場合は0、小さい場合は正の整数。
 - 導入されたバージョン:
 - 1.2
 - 関連項目:
 Collator
 
- 
regionMatches
public boolean regionMatches(int toffset, String other, int ooffset, int len)2つの文字列領域が等しいかどうかを判定します。この
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)
このメソッドはロケールを考慮しないことに注意してください。
Collatorクラスはロケールに依存した比較を提供します。- パラメータ:
 toffset- この文字列内の部分領域の開始オフセット。other- 文字列引数。ooffset- 文字列引数内の部分領域の開始オフセット。len- 比較対象の文字数。- 戻り値:
 - この文字列の指定された部分領域が文字列引数の指定された部分領域と完全に一致する場合は
true、そうでない場合はfalse。 
 
- 
regionMatches
public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)2つの文字列領域が等しいかどうかを判定します。この
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(Character.toUpperCase(this.charAt(toffset+k))) != Character.toLowerCase(Character.toUpperCase(other.charAt(ooffset+k)))
このメソッドはロケールを考慮しないため、
ignoreCaseがtrueの場合、特定のロケールでは不満足な結果になります。Collatorクラスはロケールに依存した比較を提供します。- パラメータ:
 ignoreCase-trueの場合、文字の比較の際に大文字小文字は区別されない。toffset- この文字列内の部分領域の開始オフセット。other- 文字列引数。ooffset- 文字列引数内の部分領域の開始オフセット。len- 比較対象の文字数。- 戻り値:
 - この文字列の指定された部分領域が文字列引数の指定された部分領域と一致する場合は
true、そうでない場合はfalse。 一致した場合に、大文字と小文字が区別されているかどうかは引数ignoreCaseによって決まる。 
 
- 
startsWith
public boolean startsWith(String prefix, int toffset)
この文字列の指定されたインデックス以降の部分文字列が、指定された接頭辞で始まるかどうかを判定します。- パラメータ:
 prefix- 接頭辞。toffset- この文字列の比較を開始する位置。- 戻り値:
 - 引数によって表される文字シーケンスが、インデックス
toffsetで始まるこのオブジェクトの部分文字列の接頭辞である場合はtrue、そうでない場合はfalse。toffsetが負の値の場合、あるいはStringオブジェクトの長さより大きい場合、結果はfalse。そうでない場合は、結果は次の式の結果と同じthis.substring(toffset).startsWith(prefix) 
 
- 
startsWith
public boolean startsWith(String prefix)
この文字列が、指定された接頭辞で始まるかどうかを判定します。- パラメータ:
 prefix- 接頭辞。- 戻り値:
 - 引数によって表される文字シーケンスが、この文字列によって表される文字シーケンスの接頭辞である場合は
true、そうでない場合はfalse。 引数が空の文字列の場合や、equals(Object)メソッドによる判定においてこのStringオブジェクトに等しい場合にもtrueが返される。 - 導入されたバージョン:
 - 1.0
 
 
- 
endsWith
public boolean endsWith(String suffix)
この文字列が、指定された接尾辞で終るかどうかを判定します。- パラメータ:
 suffix- 接尾辞。- 戻り値:
 - 引数によって表される文字シーケンスが、このオブジェクトによって表される文字シーケンスの接尾辞である場合は
true、そうでない場合はfalse。 引数が空の文字列の場合や、equals(Object)メソッドによる判定においてこのStringオブジェクトに等しい場合の結果はtrueになる。 
 
- 
hashCode
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)
 
- 
indexOf
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。 
 
- 
indexOf
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。 
 
- 
lastIndexOf
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。 
 
- 
lastIndexOf
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。 
 
- 
indexOf
public int indexOf(String str)
この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。返されるインデックスは、次の式がtrueとなるような最小値
kになります。
このようなthis.startsWith(str, k)kの値が存在しない場合、-1が返されます。- パラメータ:
 str- 検索対象の部分文字列。- 戻り値:
 - 指定された部分文字列が最初に出現する位置のインデックス。そのような出現箇所がない場合は
-1。 
 
- 
indexOf
public int indexOf(String str, int fromIndex)
指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。返されるインデックスは、次の式がtrueとなるような最小値
kになります。
このようなk >= Math.min(fromIndex, this.length()) && this.startsWith(str, k)kの値が存在しない場合、-1が返されます。- パラメータ:
 str- 検索対象の部分文字列。fromIndex-検索開始位置のインデックス。- 戻り値:
 - 指定されたインデックス以降で、指定された部分文字列が最初に出現する位置のインデックス。そのような出現箇所がない場合は
-1。 
 
- 
lastIndexOf
public int lastIndexOf(String str)
この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。 空の文字列「」が最後に出現する位置は、this.length()と見なされます。返されるインデックスは、次の式がtrueとなるような最大値
kになります。
このようなthis.startsWith(str, k)kの値が存在しない場合、-1が返されます。- パラメータ:
 str- 検索対象の部分文字列。- 戻り値:
 - 指定された部分文字列が最後に出現する位置のインデックス。そのような出現箇所がない場合は
-1。 
 
- 
lastIndexOf
public int lastIndexOf(String str, int fromIndex)
この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先頭方向に行われる)。返されるインデックスは、次の式がtrueとなるような最大値
kになります。
このようなk <= Math.min(fromIndex, this.length()) && this.startsWith(str, k)kの値が存在しない場合、-1が返されます。- パラメータ:
 str- 検索対象の部分文字列。fromIndex- 検索開始位置のインデックス。- 戻り値:
 - 指定された部分文字列が最後に出現する位置のインデックス(指定されたインデックスから逆方向に検索を行う)。そのような出現箇所がない場合は
-1。 
 
- 
substring
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オブジェクトの長さより大きい場合。
 
- 
substring
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より大きい場合。
 
- 
subSequence
public CharSequence subSequence(int beginIndex, int endIndex)
このシーケンスのサブシーケンスである文字シーケンスを返します。次のフォームのメソッド呼出しは、
次の呼び出しと正確に同じ動作になります。str.subSequence(begin, end)
str.substring(begin, end)
- 定義:
 subSequence、インタフェース:CharSequence- APIの注:
 - このメソッドが定義されたのは、
StringクラスがCharSequenceインタフェースを実装できるようにするためです。 - パラメータ:
 beginIndex- 開始インデックス(この値を含む)。endIndex- 終了インデックス(この値を含まない)。- 戻り値:
 - 指定されたサブシーケンス。
 - 例外:
 IndexOutOfBoundsException-beginIndexまたはendIndexが負の場合、endIndexがlength()より大きい場合、またはbeginIndexがendIndexより大きい場合- 導入されたバージョン:
 - 1.4
 
 
- 
concat
public String concat(String str)
指定された文字列をこの文字列の最後に連結します。引数文字列の長さが
0の場合は、このStringオブジェクトが返されます。 それ以外の場合は、このStringオブジェクトで表される文字列と引数文字列で表される文字列とを連結したものを表すStringオブジェクトが返されます。例
"cares".concat("s") returns "caress" "to".concat("get").concat("her") returns "together"- パラメータ:
 str- このStringの最後に連結されるString。- 戻り値:
 - このオブジェクトの文字列の後に文字列引数で表される文字を連結したものを表す文字列。
 
 
- 
replace
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に置換することによって生成された文字列。 
 
- 
matches
public boolean matches(String regex)
この文字列が、指定された正規表現と一致するかどうかを判定します。このフォームのメソッド呼び出しstr
.matches(regex)では、次の式と正確に同じ結果が得られます。Pattern.matches(regex, str)- パラメータ:
 regex- この文字列との一致を判定する正規表現- 戻り値:
 - この文字列が指定された正規表現と一致する場合にだけ、
trueが返される - 例外:
 PatternSyntaxException- 正規表現の構文が無効な場合- 導入されたバージョン:
 - 1.4
 - 関連項目:
 Pattern
 
- 
contains
public boolean contains(CharSequence s)
この文字列が指定されたchar値のシーケンスを含む場合に限りtrueを返します。- パラメータ:
 s- 検索するシーケンス- 戻り値:
 - この文字列が
sを含む場合はtrue。そうでない場合はfalse - 導入されたバージョン:
 - 1.5
 
 
- 
replaceFirst
public 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- 正規表現の構文が無効な場合- 導入されたバージョン:
 - 1.4
 - 関連項目:
 Pattern
 
- 
replaceAll
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- 正規表現の構文が無効な場合- 導入されたバージョン:
 - 1.4
 - 関連項目:
 Pattern
 
- 
replace
public String replace(CharSequence target, CharSequence replacement)
リテラル・ターゲット・シーケンスに一致するこの文字列の部分文字列を、指定されたリテラル置換シーケンスに置き換えます。 置換は、文字列の先頭から始まり終端まで進みます。たとえば、文字列「aaa」の「aa」を「b」に置換すると、結果は「ab」ではなく、「ba」です。- パラメータ:
 target- 置換されるchar値のシーケンスreplacement- char値の置換シーケンス- 戻り値:
 - 結果として得られる文字列
 - 導入されたバージョン:
 - 1.5
 
 
- 
split
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", "", "" }-2 { "b", "", ":and:f", "", "" }0 { "b", "", ":and:f" }このフォームのメソッド呼び出しstr.
split(regex,n)では、次の式と同じ結果が得られます。Pattern.compile(regex).split(str, n)- パラメータ:
 regex- 正規表現の区切りlimit- 結果のしきい値(上記を参照)- 戻り値:
 - この文字列を指定された正規表現に一致する位置で分割して計算された文字列の配列
 - 例外:
 PatternSyntaxException- 正規表現の構文が無効な場合- 導入されたバージョン:
 - 1.4
 - 関連項目:
 Pattern
 
- 
split
public String[] split(String regex)
この文字列を、指定された正規表現に一致する位置で分割します。このメソッドの動作は、2つの引数を取る
splitメソッドを、指定された式および制限引数ゼロを指定して呼び出した場合と同じになります。 つまり、結果として得られる配列には後続の空の文字列は含まれません。たとえば、次の式が指定された場合の、文字列
"boo:and:foo"の結果を示します。正規表現 結果 : { "boo", "and", "foo" }o { "b", "", ":and:f" }- パラメータ:
 regex- 正規表現の区切り- 戻り値:
 - この文字列を指定された正規表現に一致する位置で分割して計算された文字列の配列
 - 例外:
 PatternSyntaxException- 正規表現の構文が無効な場合- 導入されたバージョン:
 - 1.4
 - 関連項目:
 Pattern
 
- 
join
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である場合- 導入されたバージョン:
 - 1.8
 - 関連項目:
 StringJoiner
 
- 
join
public static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
指定されたdelimiterのコピーを使用して結合されたCharSequence要素のコピーからなる新しいStringを返します。次に例を示します。
個々の要素がList<String> strings = List.of("Java", "is", "cool"); String message = String.join(" ", strings); //message returned is: "Java is cool" Set<String> strings = new LinkedHashSet<>(List.of("Java", "is", "very", "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である場合- 導入されたバージョン:
 - 1.8
 - 関連項目:
 join(CharSequence,CharSequence...),StringJoiner
 
- 
toLowerCase
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。 - 導入されたバージョン:
 - 1.1
 - 関連項目:
 toLowerCase(),toUpperCase(),toUpperCase(Locale)
 
- 
toLowerCase
public String toLowerCase()
デフォルト・ロケールのルールを使って、このString内のすべての文字を小文字に変換します。 これは、toLowerCase(Locale.getDefault())の呼び出しと同等です。注: このメソッドはロケールに依存するため、単独でロケールと解釈されるような文字列に使用すると、予期せぬ結果を引き起こすことがあります。 例として、プログラミング言語識別子、プロトコル・キー、HTMLタグがあります。 たとえば、トルコ語ロケールの
"TITLE".toLowerCase()は"t\u0131tle"を返します。ここで、「\u0131」は点のないラテン小文字のIの文字です。 ロケールに依存しない文字列の正しい結果を取得するには、toLowerCase(Locale.ROOT)を使用します。- 戻り値:
 - 小文字に変換された
String。 - 関連項目:
 toLowerCase(Locale)
 
- 
toUpperCase
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。 - 導入されたバージョン:
 - 1.1
 - 関連項目:
 toUpperCase(),toLowerCase(),toLowerCase(Locale)
 
- 
toUpperCase
public String toUpperCase()
デフォルト・ロケールのルールを使って、このString内のすべての文字を大文字に変換します。 このメソッドは、toUpperCase(Locale.getDefault())と同等です。注: このメソッドはロケールに依存するため、単独でロケールと解釈されるような文字列に使用すると、予期せぬ結果を引き起こすことがあります。 例として、プログラミング言語識別子、プロトコル・キー、HTMLタグがあります。 たとえば、トルコ語ロケールの
"title".toUpperCase()は"T\u0130TLE"を返します。ここで、「\u0130」は上に点が付いたラテン大文字Iの文字です。 ロケールに依存しない文字列の正しい結果を取得するには、toUpperCase(Locale.ROOT)を使用します。- 戻り値:
 - 大文字に変換された
String。 - 関連項目:
 toUpperCase(Locale)
 
- 
trim
public String trim()
値がこの文字列である文字列を返します(先頭と末尾の空白は削除される)。この
Stringオブジェクトが空の文字列を表す場合、あるいはこのStringオブジェクトによって表される文字列の最初と最後の文字のコードが'\u0020'(スペース文字)より大きい場合は、このStringオブジェクトへの参照が返されます。文字列内に
'\u0020'より大きいコードの文字がない場合は、空の文字列を表すStringオブジェクトが返されます。それ以外の場合、kを、文字列内で
'\u0020'より大きいコードを持つ最初の文字のインデックス、mを、文字列内で'\u0020'より大きいコードを持つ最後の文字のインデックスであるとします。 インデックスkの文字で始まってインデックスmの文字で終わるこの文字列の部分文字列、つまりthis.substring(k, m + 1)の部分文字列を表すStringオブジェクトが返されます。このメソッドは文字列の先頭と最後から(上記で定義された)空白を切り取るために使用できます。
- 戻り値:
 - この文字列の先頭と末尾の空白を削除した値を持つ文字列、またはこの文字列(先頭と末尾に空白が存在しない場合)。
 
 
- 
toString
public String toString()
このオブジェクト(すでに文字列である)自身が返されます。- 定義:
 toString、インタフェース:CharSequence- オーバーライド:
 toString、クラス:Object- 戻り値:
 - 文字列自身。
 
 
- 
chars
public IntStream chars()
このシーケンスのchar値をゼロ拡張したintを含むストリームを返します。 サロゲート・コード・ポイントにマップするすべてのcharは、解釈されずに渡されます。- 定義:
 chars、インタフェース:CharSequence- 戻り値:
 - このシーケンスのchar値のIntStream
 - 導入されたバージョン:
 - 9
 
 
- 
codePoints
public IntStream codePoints()
このシーケンスからコード・ポイント値のストリームを返します。 そのシーケンスで検出されるサロゲート・ペアがすべて、Character.toCodePointを使用した場合のように結合され、結果がストリームに渡されます。 他のすべてのコード(通常のBMP文字、ペアになっていないサロゲート、未定義のコード単位など)はint値にゼロ拡張されたあと、ストリームに渡されます。- 定義:
 - インタフェース
CharSequence内のcodePoints - 戻り値:
 - このシーケンスからのUnicodeコード・ポイントのIntStream
 - 導入されたバージョン:
 - 9
 
 
- 
toCharArray
public char[] toCharArray()
この文字列を新しい文字配列に変換します。- 戻り値:
 - 新しく割り当てられた文字配列。長さはこの文字列の長さと同じで、内容はこの文字列によって表される文字シーケンスが格納されるように初期化されている。
 
 
- 
format
public static String format(String format, Object... args)
指定された書式の文字列と引数を使って、書式付き文字列を返します。常に使用されるロケールは、
Locale.getDefault(Locale.Category)によって返されたロケールで、FORMATカテゴリが指定されています。- パラメータ:
 format- 書式文字列args- 書式文字列の書式指示子により参照される引数。 書式指示子よりも引数が多い場合、余分な引数は無視される。 引数の数は変動し、ゼロの場合もある。 引数の最大数は、Java™仮想マシン仕様で定義されているJava配列の最大次元により制限される。 引数がnullの場合、動作は変換に応じて異なる。- 戻り値:
 - フォーマットされた文字列
 - 例外:
 IllegalFormatException- 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。 考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「詳細」セクションを参照。- 導入されたバージョン:
 - 1.5
 - 関連項目:
 Formatter
 
- 
format
public static String format(Locale l, String format, Object... args)
指定されたロケール、書式文字列、および引数を使って、フォーマットされた文字列を返します。- パラメータ:
 l- 書式設定時に適用するlocale。lがnullの場合、ローカリゼーションは適用されない。format- 書式文字列args- 書式文字列の書式指示子により参照される引数。 書式指示子よりも引数が多い場合、余分な引数は無視される。 引数の数は変動し、ゼロの場合もある。 引数の最大数は、Java™仮想マシン仕様で定義されているJava配列の最大次元により制限される。 引数がnullの場合、動作は変換に応じて異なる。- 戻り値:
 - フォーマットされた文字列
 - 例外:
 IllegalFormatException- 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。 考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「詳細」セクションを参照- 導入されたバージョン:
 - 1.5
 - 関連項目:
 Formatter
 
- 
valueOf
public static String valueOf(Object obj)
Object引数の文字列表現を返します。- パラメータ:
 obj-Object。- 戻り値:
 - 引数が
nullの場合は"null"に等しい文字列。それ以外の場合はobj.toString()の値が返される。 - 関連項目:
 Object.toString()
 
- 
valueOf
public static String valueOf(char[] data)
char配列引数の文字列表現を返します。 文字配列の内容がコピーされます。コピー後にその文字配列が変更されても、返される文字列には影響しません。- パラメータ:
 data- 文字配列。- 戻り値:
 - 文字配列の文字が格納されている
String。 
 
- 
valueOf
public static String valueOf(char[] data, int offset, int count)
char配列引数の特定の部分配列の文字列表現を返します。offset引数は部分配列の最初の文字のインデックスを表します。count引数は部分配列の長さを表します。 部分配列の内容がコピーされます。コピー後に文字配列が変更されても、返される文字列には影響しません。- パラメータ:
 data- 文字配列。offset- 部分配列の初期オフセット。count- 部分配列の長さ。- 戻り値:
 - 文字配列内の指定された部分配列の文字が格納されている
String。 - 例外:
 IndexOutOfBoundsException-offsetが負の値の場合、countが負の値の場合、あるいはoffset+countがdata.lengthよりも大きい場合。
 
- 
copyValueOf
public static String copyValueOf(char[] data, int offset, int count)
- パラメータ:
 data- 文字配列。offset- 部分配列の初期オフセット。count- 部分配列の長さ。- 戻り値:
 - 文字配列内の指定された部分配列の文字が格納されている
String。 - 例外:
 IndexOutOfBoundsException-offsetが負の値の場合、countが負の値の場合、あるいはoffset+countがdata.lengthよりも大きい場合。
 
- 
copyValueOf
public static String copyValueOf(char[] data)
valueOf(char[])と同等です。- パラメータ:
 data- 文字配列。- 戻り値:
 - 文字配列の文字が格納されている
String。 
 
- 
valueOf
public static String valueOf(boolean b)
boolean引数の文字列表現を返します。- パラメータ:
 b-boolean。- 戻り値:
 - 引数が
trueの場合は"true"に等しい文字列が返され、そうでない場合は"false"に等しい文字列が返される。 
 
- 
valueOf
public static String valueOf(char c)
char引数の文字列表現を返します。- パラメータ:
 c-char。- 戻り値:
 - 1つの文字として引数
cが格納された、長さ1の文字列。 
 
- 
valueOf
public static String valueOf(int i)
int引数の文字列表現を返します。この表現は1つの引数を持つ
Integer.toStringメソッドによって返されるものとまったく同じです。- パラメータ:
 i-int。- 戻り値:
 int引数の文字列表現。- 関連項目:
 Integer.toString(int, int)
 
- 
valueOf
public static String valueOf(long l)
long引数の文字列表現を返します。この表現は1つの引数を持つ
Long.toStringメソッドによって返されるものとまったく同じです。- パラメータ:
 l-long。- 戻り値:
 long引数の文字列表現。- 関連項目:
 Long.toString(long)
 
- 
valueOf
public static String valueOf(float f)
float引数の文字列表現を返します。この表現は1つの引数を持つ
Float.toStringメソッドによって返されるものとまったく同じです。- パラメータ:
 f-float。- 戻り値:
 float引数の文字列表現。- 関連項目:
 Float.toString(float)
 
- 
valueOf
public static String valueOf(double d)
double引数の文字列表現を返します。この表現は1つの引数を持つ
Double.toStringメソッドによって返されるものとまったく同じです。- パラメータ:
 d-double。- 戻り値:
 double引数の文字列表現。- 関連項目:
 Double.toString(double)
 
- 
intern
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で定義されています。
- 戻り値:
 - この文字列と同じ内容だが、一意の文字列のプールからのものであることが保証されている文字列。
 - Java™言語仕様:
 - 3.10.5 文字列リテラル
 
 
 - 
 
 -