JavaTM Platform
Standard Ed. 6

java.lang
クラス String

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 言語は、文字列連結演算子 ( + )、およびその他のオブジェクトから文字列への変換に対する特別なサポートを提供します。文字列連結は StringBuilder (または StringBuffer) クラスとその append メソッドを使って実装されています。文字列変換は Object によって定義された toString メソッドを使って実装され、Java のクラスすべてによって継承されます。文字列連結および文字列変換についての詳細は、Gosling、Joy、および Steele による『Java 言語仕様』を参照してください。

ほかで指定がない場合、null 引数をコンストラクタ、またはこのクラスのメソッドへ渡すと NullPointerException がスローされます。

String は、「補助文字」を「サロゲートペア」で表現する UTF-16 形式の文字列を表します (詳細は、Character クラスの「Unicode 文字表現」のセクションを参照)。char コード単位を参照するインデックス値です。 したがって、補助文字は String の 2 つの位置を使用します。 

String クラスは、Unicode コード単位 (char 値) を扱うメソッドのほかに、Unicode コードポイント (文字) を扱うメソッドを提供します。

導入されたバージョン:
JDK1.0
関連項目:
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 コンストラクタの使用が推奨されます。
String(byte[] bytes, int offset, int length)
          プラットフォームのデフォルトの文字セットを使用して、指定されたバイト部分配列を復号化することによって、新しい String を構築します。
String(byte[] bytes, int offset, int length, Charset charset)
          指定された charset を使用して、指定されたバイト部分配列を復号化することによって、新しい String を構築します。
String(byte[] ascii, int hibyte, int offset, int count)
          推奨されていません。 このメソッドでは、バイトから文字への変換が正しく行われません。 JDK 1.1 以降では、バイトから文字への変換には、引数として Charset、文字セットの名前を取る String コンストラクタ、またはプラットフォームのデフォルト文字セットを使用する 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)
          指定された配列内の文字シーケンスを表す String を返します。
static String copyValueOf(char[] data, int offset, int count)
          指定された配列内の文字シーケンスを表す String を返します。
 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 を返します。
 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)
          codePointOffset コードポイントによって指定された index からオフセットが設定された、この String 内のインデックスを返します。
 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)
          この文字列内にあるすべての oldCharnewChar に置換した結果生成される、新しい文字列を返します。
 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 引数の文字列表現を返します。
 
クラス java.lang.Object から継承されたメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

CASE_INSENSITIVE_ORDER

public static final Comparator<String> CASE_INSENSITIVE_ORDER
compareToIgnoreCase の場合と同じように String オブジェクトを順序付ける Comparator です。このコンパレータは直列化可能です。  

この Comparator はロケールを考慮しないので、一部のロケールでは、正しい順序に並べられないことがあります。java.text パッケージは、ロケールに依存する並べ替えを行うために「照合機能」を提供しています。

導入されたバージョン:
1.2
関連項目:
Collator.compare(String, String)
コンストラクタの詳細

String

public String()
新しく生成された String オブジェクトを初期化して、空の文字シーケンスを表すようにします。String は不変なので、このコンストラクタを使う必要はありません。


String

public String(String original)
新しく生成された String オブジェクトを初期化して、引数と同じ文字シーケンスを表すようにします。つまり、新しく作成された文字列は引数文字列のコピーになります。String は不変なので、original の明示的なコピーが必要でないかぎり、このコンストラクタを使う必要はありません。

パラメータ:
original - String

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 引数インデックスによる文字列が value 配列の範囲外となる場合

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 引数インデックスによる文字列が codePoints 配列の範囲外となる場合
導入されたバージョン:
1.5

String

@Deprecated
public String(byte[] ascii,
                         int hibyte,
                         int offset,
                         int count)
推奨されていません。 このメソッドでは、バイトから文字への変換が正しく行われません。 JDK 1.1 以降では、バイトから文字への変換には、引数として Charset、文字セットの名前を取る String コンストラクタ、またはプラットフォームのデフォルト文字セットを使用する String コンストラクタの使用が推奨されます。

8 ビット整数値配列の部分配列によって構築される新しい 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[])

String

@Deprecated
public String(byte[] ascii,
                         int hibyte)
推奨されていません。 このメソッドでは、バイトから文字への変換が正しく行われません。 JDK 1.1 以降では、バイトから文字への変換には、引数として Charset、文字セットの名前を取る String コンストラクタ、またはプラットフォームのデフォルト文字セットを使用する 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 引数インデックスによる文字列が bytes 配列の範囲外となる場合
導入されたバージョン:
JDK1.1

String

public String(byte[] bytes,
              int offset,
              int length,
              Charset charset)
指定された charset を使用して、指定されたバイト部分配列を復号化することによって、新しい String を構築します。新しい String の長さは文字セットによって変化するため、部分配列長と一致しないことがあります。

このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、この文字セットのデフォルトの置換文字列で置き換えます。復号化処理をより強力に制御する必要がある場合、CharsetDecoder クラスを使用する必要があります。

パラメータ:
bytes - 文字列に復号化されるバイト
offset - 復号化される先頭バイトのインデックス
length - 復号化するバイト数
charset - bytes の復号化に使用される 文字セット
例外:
IndexOutOfBoundsException - offset および length 引数インデックスによる文字列が bytes 配列の範囲外となる場合
導入されたバージョン:
1.6

String

public String(byte[] bytes,
              String charsetName)
       throws UnsupportedEncodingException
指定された 文字セット を使用して、指定されたバイト配列を復号化することによって、新しい String を構築します。新しい String の長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。

指定された文字セットで指定されたバイトが無効な場合、このコンストラクタの動作は指定されません。復号化処理をより強力に制御する必要がある場合、CharsetDecoder クラスを使用する必要があります。

パラメータ:
bytes - 文字列に復号化されるバイト
charsetName - サポートする charset の名前
例外:
UnsupportedEncodingException - 指定された文字セットがサポートされていない場合
導入されたバージョン:
JDK1.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 引数インデックスによる文字列が bytes 配列の範囲外となる場合
導入されたバージョン:
JDK1.1

String

public String(byte[] bytes)
プラットフォームのデフォルトの文字セットを使用して、指定されたバイト配列を復号化することによって、新しい String を構築します。新しい String の長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。

指定されたバイトがデフォルトの文字セットで無効な場合、このコンストラクタの動作は指定されません。復号化処理をより強力に制御する必要がある場合、CharsetDecoder クラスを使用する必要があります。

パラメータ:
bytes - 文字列に復号化されるバイト
導入されたバージョン:
JDK1.1

String

public String(StringBuffer buffer)
文字列バッファー引数に現在含まれている文字列を持つ新しい文字列を構築します。文字列バッファーの内容がコピーされます。 コピー後に文字列バッファーが変更されても、新しく作成された文字列には影響しません。

パラメータ:
buffer - StringBuffer

String

public String(StringBuilder builder)
文字列ビルダー引数に現在含まれている文字列を持つ新しい文字列を割り当てます。文字列ビルダーの内容がコピーされます。 コピー後に文字列ビルダーが変更されても、新しく作成された文字列には影響しません。

このコンストラクタを使用すると、StringBuilder に移行しやすくなります。toString メソッドを使って文字列ビルダーから文字列を取得するのは、処理が高速になるので一般的に推奨されています。

パラメータ:
builder - StringBuilder
導入されたバージョン:
1.5
メソッドの詳細

length

public int length()
この文字列の長さを返します。長さは文字列内の Unicode コード単位の数に等しくなります。

定義:
インタフェース CharSequence 内の length
戻り値:
このオブジェクトによって表される文字シーケンスの長さ

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 値がサロゲートの場合、サロゲート値が返されます。

定義:
インタフェース CharSequence 内の charAt
パラメータ:
index - char 値のインデックス
戻り値:
文字列内の指定されたインデックス位置にある char 値。 最初の char 値のインデックスが 0 になる
例外:
IndexOutOfBoundsException - index 引数が負の値、または文字列の長さと同じかこれより大きい値の場合

codePointAt

public int codePointAt(int index)
指定されたインデックス位置の文字 (Unicode コードポイント) を返します。インデックスは char 値 (Unicode コード単位) を参照し、範囲は 0length() - 1 です。

指定されたインデックスで指定された char 値が上位サロゲート範囲にある場合、それに続くインデックスは、このString の長さ未満です。 また、以降のインデックスの char 値が下位サロゲート範囲にある場合、このサロゲートペアに対応する補助コードポイントが返されます。そうでない場合、指定されたインデックスにある char 値が返されます。

パラメータ:
index - char 値のインデックス
戻り値:
指定された index にある文字のコードポイント値
例外:
IndexOutOfBoundsException - index 引数が負の値、または文字列の長さと同じかこれより大きい値の場合
導入されたバージョン:
1.5

codePointBefore

public int codePointBefore(int index)
指定されたインデックスの前の文字 (Unicode コードポイント) を返します。インデックスは char 値 (Unicode コード単位) を参照し、範囲は 1length です。

(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 の長さより大きい場合、あるいは beginIndexendIndex より大きい場合
導入されたバージョン:
1.5

offsetByCodePoints

public int offsetByCodePoints(int index,
                              int codePointOffset)
codePointOffset コードポイントによって指定された index からオフセットが設定された、この String 内のインデックスを返します。indexcodePointOffset によって指定されたテキスト範囲内でペアになっていないサロゲートは、それぞれ 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 が負
  • srcBeginsrcEnd より大きい
  • srcEnd がこの文字列の長さより大きい
  • dstBegin が負
  • dstBegin+(srcEnd-srcBegin)dst.length よりも大きい

getBytes

@Deprecated
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 が負
  • srcBeginsrcEnd より大きい
  • srcEnd がこの文字列の長さより大きい
  • dstBegin が負
  • dstBegin+(srcEnd-srcBegin)dst.length より大きい

getBytes

public byte[] getBytes(String charsetName)
                throws UnsupportedEncodingException
指定された文字セットを使用してこの String をバイトシーケンスに符号化し、結果を新規バイト配列に格納します。

指定された文字セットでこの文字列を符号化できない場合、このメソッドの動作は指定されません。符号化処理をより強力に制御する必要がある場合、CharsetEncoder クラスを使用する必要があります。

パラメータ:
charsetName - サポートする charset の名前
戻り値:
結果のバイト配列
例外:
UnsupportedEncodingException - 指定された文字セットがサポートされていない場合
導入されたバージョン:
JDK1.1

getBytes

public byte[] getBytes(Charset charset)
指定された 文字セット を使用してこの String をバイトシーケンスに符号化し、結果を新規バイト配列に格納します。

このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、この文字セットのデフォルトの置換バイト配列で置き換えます。符号化処理をより強力に制御する必要がある場合、CharsetEncoder クラスを使用する必要があります。

パラメータ:
charset - String の復号化に使用される Charset
戻り値:
結果のバイト配列
導入されたバージョン:
1.6

getBytes

public byte[] getBytes()
プラットフォームのデフォルトの文字セットを使用してこの String をバイトシーケンスに符号化し、結果を新規バイト配列に格納します。

デフォルトの文字セットでこの文字列を符号化できない場合、このメソッドの動作は指定されません。符号化処理をより強力に制御する必要がある場合、CharsetEncoder クラスを使用する必要があります。

戻り値:
結果のバイト配列
導入されたバージョン:
JDK1.1

equals

public boolean equals(Object anObject)
この文字列と指定されたオブジェクトを比較します。引数が null でなく、このオブジェクトと同じ文字シーケンスを表す String オブジェクトである場合にだけ、結果は true になります。

オーバーライド:
クラス Object 内の equals
パラメータ:
anObject - この String と比較されるオブジェクト
戻り値:
指定されたオブジェクトがこの文字列に等しい String を表す場合は true、そうでない場合は false
関連項目:
compareTo(String), equalsIgnoreCase(String)

contentEquals

public boolean contentEquals(StringBuffer sb)
この文字列と指定された StringBuffer を比較します。この String が、指定された StringBuffer と同じ文字シーケンスを表す場合にだけ、結果は true になります。

パラメータ:
sb - この String と比較される StringBuffer
戻り値:
この String が、指定された StringBuffer と同じ文字シーケンスを表す場合は true、そうでない場合は false
導入されたバージョン:
1.4

contentEquals

public boolean contentEquals(CharSequence cs)
この文字列と指定された CharSequence を比較します。この String が、指定されたシーケンスと同じ char 値のシーケンスを表す場合にだけ、結果は true になります。

パラメータ:
cs - この String と比較されるシーケンス
戻り値:
この String が、指定されたシーケンスとと同じ char 値のシーケンスを表す場合は true、そうでない場合は false
導入されたバージョン:
1.5

equalsIgnoreCase

public boolean equalsIgnoreCase(String anotherString)
この String とほかの String を比較します。大文字と小文字は区別されません。長さが同じで、2 つの文字列内の対応する文字が大文字と小文字の区別なしで等しい場合、2 つの文字列は大文字と小文字の区別なしで等しいと見なされます。

次のどれかに該当する場合に、c1c2 という 2 つの文字は大文字小文字の区別なしで等しいと見なされます。

パラメータ:
anotherString - この String と比較される String
戻り値:
引数が null でなく等しい String を表す (大文字と小文字は区別しない) 場合は true、そうでない場合は false
関連項目:
equals(Object)

compareTo

public int compareTo(String anotherString)
2 つの文字列を辞書的に比較します。比較は文字列内のそれぞれの文字の Unicode 値に基づいて行われます。この String オブジェクトによって表される文字シーケンスが、引数文字列によって表される文字シーケンスと辞書的に比較されます。この String オブジェクトが辞書的に引数文字列より前にある場合は、結果は負の整数になります。この String オブジェクトが辞書的に引数文字列の後ろにある場合、結果は正の整数になります。文字列が等しい場合、結果は 0 になります。 equals(Object) メソッドが true を返すとき、compareTo0 を返します。  

辞書的の順序の定義を示します。2 つの文字列が異なる場合、両方の文字列に対して有効なインデックスに位置する文字が異なるか、2 つの文字列の長さが異なるか、あるいはその両方が該当します。1 つ以上のインデックスの位置にある文字が異なる場合は、このうちのもっとも小さいインデックスを k とすると、< 演算子を使用して「より小さい」値と判定される、位置 k にある文字を持つ文字列が、もう一方の文字列より辞書的に前になります。この場合、compareTo は 2 つの文字列で位置 k にある 2 つの文字の値の差を返します。 これは次の式で表される値になります。

 this.charAt(k)-anotherString.charAt(k)
 
有効なすべてのインデックス位置における文字が同じ場合は、短い方の文字列が辞書的に前になります。この場合は、compareTo は文字列の長さの差を返します。 これは次の式で表される値になります。
 this.length()-anotherString.length()
 

定義:
インタフェース Comparable<String> 内の compareTo
パラメータ:
anotherString - 比較対象の String
戻り値:
引数文字列がこの文字列に等しい場合は、値 0。この文字列が文字列引数より辞書式に小さい場合は、0 より小さい値。この文字列が文字列引数より辞書式に大きい場合は、0 より大きい値

compareToIgnoreCase

public int compareToIgnoreCase(String str)
大文字と小文字の区別なしで、2 つの文字列を辞書的に比較します。このメソッドは、文字列の正規化バージョンで compareTo を呼び出して得られた符号を持つ整数を返します。 ここでは、各文字で Character.toLowerCase(Character.toUpperCase(character)) を呼び出すことで大文字と小文字の違いがなくなります。  

このメソッドはロケールを考慮しないので、一部のロケールでは、正しい順序に並べられないことがあります。java.text パッケージは、ロケールに依存する並べ替えを行うために「照合機能」を提供しています。

パラメータ:
str - 比較対象の String
戻り値:
大文字と小文字の区別なしで、指定された String がこの String より大きい場合は負の整数、同じ場合は 0、小さい場合は正の整数
導入されたバージョン:
1.2
関連項目:
Collator.compare(String, String)

regionMatches

public boolean regionMatches(int toffset,
                             String other,
                             int ooffset,
                             int len)
2 つの文字列領域が等しいかどうかを判定します。  

この String オブジェクトの部分文字列が、引数 other の部分文字列と比較されます。これらの部分文字列が同じ文字シーケンスを表す場合、結果は true になります。比較の対象となる String オブジェクトの部分文字列は、インデックス toffset から始まり、長さは len です。比較の対象となる other の部分文字列はインデックス ooffset から始まり、長さは len です。以下のどれかに該当する場合にだけ、結果は false になります。

パラメータ:
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 になります。

パラメータ:
ignoreCase - true の場合、文字の比較の際に大文字小文字は区別されない
toffset - この文字列内の部分領域の開始オフセット
other - 文字列引数
ooffset - 文字列引数内の部分領域の開始オフセット
len - 比較対象の文字数
戻り値:
この文字列の指定された部分領域が文字列引数の指定された部分領域と一致する場合は true、そうでない場合は false。一致した場合に、大文字と小文字が区別されているかどうかは引数 ignoreCase によって決まる

startsWith

public boolean startsWith(String prefix,
                          int toffset)
この文字列の指定されたインデックス以降の部分文字列が、指定された接頭辞で始まるかどうかを判定します。

パラメータ:
prefix - 接頭辞
toffset - この文字列の比較を開始する位置
戻り値:
引数によって表される文字シーケンスが、インデックス toffset で始まるこのオブジェクトの部分文字列の接頭辞である場合は true、そうでない場合は falsetoffset が負の値の場合、あるいは 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 です。

オーバーライド:
クラス Object 内の hashCode
戻り値:
このオブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

indexOf

public int indexOf(int ch)
この文字列内で、指定された文字が最初に出現する位置のインデックスを返します。値 ch を持つ文字がこの String オブジェクトによって表される文字シーケンス内にある場合、最初に出現する位置のインデックス (Unicode コード単位) が返されます。ch の値が 0 〜 0xFFFF の範囲にある場合、次の式が true となるような最小値 k が返されます。
 this.charAt(k) == ch
 
true です。ch がほかの値の場合、次の式が true となるような最小値 k です。
 this.codePointAt(k) == ch
 
true です。該当する文字がこの文字列内にない場合は、-1 が返されます。

パラメータ:
ch - 文字 (Unicode コードポイント)
戻り値:
このオブジェクトによって表される文字シーケンス内で、指定された文字が最初に出現する位置のインデックス。文字がない場合は -1

indexOf

public int indexOf(int ch,
                   int fromIndex)
この文字列内で、指定されたインデックスから検索を開始し、指定された文字が最初に出現する位置のインデックスを返します。  

ch を持つ文字が、この String オブジェクトによって表される文字シーケンスの fromIndex より大きいか同じインデックス位置にある場合、該当する最初のインデックスが返されます。ch の値が 0 〜 0xFFFF の範囲にある場合、次の式が true となるような最小値 k が返されます。

 (this.charAt(k) == ch) && (k >= fromIndex)
 
true です。ch がほかの値の場合、次の式が true となるような最小値 k です。
 (this.codePointAt(k) == ch) && (k >= fromIndex)
 
true です。該当する文字がこの文字列内または位置 fromIndex 以降にない場合は -1 が返されます。

fromIndex の値に対して制約はない。負の値の場合は、0 の場合と同じ結果になり、この文字列全体が検索されます。この文字列の長さより大きい場合は、この文字列の長さに等しい場合と同じ結果になり、-1 が返されます。

すべてのインデックスは、char 値 (Unicode コード単位) で指定されます。

パラメータ:
ch - 文字 (Unicode コードポイント)
fromIndex - 検索開始位置のインデックス
戻り値:
このオブジェクトによって表される文字列で、指定された文字が fromIndex と同じかこれより大きいインデックス位置にある場合は、最初に出現した位置のインデックス。文字がない場合は -1

lastIndexOf

public int lastIndexOf(int ch)
この文字列内で、指定された文字が最後に出現する位置のインデックスを返します。ch 値が 0 〜 0xFFFF の範囲にある場合、返されるインデックス (Unicode コード単位) は、次の式に該当する最大値 k です。
 this.charAt(k) == ch
 
true です。ch がほかの値の場合、次の式に該当する最大値 k です。
 this.codePointAt(k) == ch
 
true です。該当する文字がこの文字列内にない場合は、-1 が返されます。String の検索は最後の文字から開始され、先頭方向に行われます。

パラメータ:
ch - 文字 (Unicode コードポイント)
戻り値:
このオブジェクトによって表される文字シーケンス内で、指定された文字が最後に出現する位置のインデックス。文字がない場合は -1

lastIndexOf

public int lastIndexOf(int ch,
                       int fromIndex)
この文字列内で、指定された文字が最後に出現する位置のインデックスを返します (検索は指定されたインデックスから開始され、先頭方向に行われる)。ch 値が 0 〜 0xFFFF の範囲にある場合、返されるインデックスは、次の式に該当する最大値 k です。
 (this.charAt(k) == ch) && (k <= fromIndex)
 
true です。ch がほかの値の場合、次の式に該当する最大値 k です。
 (this.codePointAt(k) == ch) && (k <= fromIndex)
 
true です。該当する文字がこの文字列内または位置 fromIndex 以前にない場合は -1 が返されます。

すべてのインデックスは、char 値 (Unicode コード単位) で指定されます。

パラメータ:
ch - 文字 (Unicode コードポイント)
fromIndex - 検索開始位置のインデックスfromIndex の値に対して制約はない。 この文字列の長さと同じかこれより大きい場合は、この文字列の長さより 1 小さい場合と同じ結果になり、この文字列全体が検索される。 負の値の場合は、-1 の場合と同じ結果になり、-1 が返される
戻り値:
このオブジェクトによって表される文字シーケンス内で、指定された文字が fromIndex と同じかこれより小さいインデックス位置に最後に出現する位置のインデックス。指定された文字がその位置より前にない場合は -1

indexOf

public int indexOf(String str)
この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。返される整数は、次に適合する最小値 k です。
 this.startsWith(str, k)
 
true です。

パラメータ:
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 - 検索開始位置のインデックス
戻り値:
指定されたインデックスから検索を開始して、最初に指定された部分文字列が出現する、この文字列内のインデックス

lastIndexOf

public int lastIndexOf(String str)
この文字列内で、指定された部分文字列が一番右に出現する位置のインデックスを返します。空の文字列「」の一番右に出現した位置が、this.length() と見なされます。返されるインデックスは、
 this.startsWith(str, k)
 
上の式が true となるような最大の k です。

パラメータ:
str - 検索対象の部分文字列
戻り値:
文字列引数がこのオブジェクト内の部分文字列として 1 回以上出現する場合は、該当する最後の部分文字列の最初の文字のインデックス。部分文字列として出現しない場合は、-1

lastIndexOf

public int lastIndexOf(String str,
                       int fromIndex)
この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します (検索は指定されたインデックスから開始され、先頭方向に行われる)。返される整数は、次を満たす最大値 k になります。
     k <= Math.min(fromIndex, this.length()) && this.startsWith(str, k)
 
このような k の値が存在しない場合、-1 が返されます。

パラメータ:
str - 検索対象の部分文字列
fromIndex - 検索開始位置のインデックス
戻り値:
この文字列内で、指定された部分文字列が最後に出現する位置のインデックス

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 オブジェクトの長さより大きい場合、あるいは beginIndexendIndex より大きい場合

subSequence

public CharSequence subSequence(int beginIndex,
                                int endIndex)
このシーケンスのサブシーケンスである新規文字シーケンスを返します。

次のフォームのメソッド呼び出しは、

 str.subSequence(begin, end)
次の呼び出しと正確に同じ動作になります。
 str.substring(begin, end)
このメソッド定義により、String クラスが CharSequence インタフェースを実装可能になります。

定義:
インタフェース CharSequence 内の subSequence
パラメータ:
beginIndex - 開始インデックス (この値を含む)
endIndex - 終了インデックス (この値を含まない)
戻り値:
指定されたサブシーケンス
例外:
IndexOutOfBoundsException - beginIndex または endIndex が負の値の場合、endIndex の値が length() より大きい場合、beginIndex の値が startIndex よりも大きい場合
導入されたバージョン:
1.4

concat

public String concat(String str)
指定された文字列をこの文字列の最後に連結します。  

引数文字列の長さが 0 の場合は、この String オブジェクトが返されます。そうでない場合は、この String オブジェクトによって表される文字列と引数文字列によって表される文字列とを連結したものを表す新しい String<