JavaTM 2 Platform
Std. Ed. v1.3

java.lang
クラス String

java.lang.Object
  |
  +--java.lang.String
すべての実装インタフェース:
Comparable, Serializable

public final class String
extends Object
implements Serializable, Comparable

String クラスは文字列を表します。Java プログラム内の "abc" などのリテラル文字列はすべて、このクラスのインスタンスとして実行されます。

文字列は定数です。この値を作成したあとに変更はできません。StringBuffer は可変文字列をサポートします。文字列オブジェクトは不変であるため、共用することができます。たとえば

     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 クラスには、文字列のそれぞれの文字をテストするメソッドや、文字列の比較、文字列の検索、部分文字列の抽出、および文字をすべて大文字または小文字に変換した文字列のコピー作成などを行うメソッドがあります。

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

導入されたバージョン:
JDK1.0
関連項目:
Object.toString(), StringBuffer, StringBuffer.append(boolean), StringBuffer.append(char), StringBuffer.append(char[]), StringBuffer.append(char[], int, int), StringBuffer.append(double), StringBuffer.append(float), StringBuffer.append(int), StringBuffer.append(long), StringBuffer.append(java.lang.Object), StringBuffer.append(java.lang.String), 「文字エンコーディング」, 直列化された形式

フィールドの概要
static Comparator CASE_INSENSITIVE_ORDER
          compareToIgnoreCase の場合と同じように String オブジェクトを順序付ける Comparator を返します。
 
コンストラクタの概要
String()
          新しく生成された String オブジェクトを初期化して、空の文字シーケンスを表すようにします。
String(byte[] bytes)
          プラットフォームのデフォルトの文字エンコーディングを使って、指定されたバイト配列を変換することによって新しい String を構築します。
String(byte[] ascii, int hibyte)
          推奨されていません。 このメソッドでは、バイトから文字への変換が正しく行われません。JDK 1.1 以降では、バイトから文字への変換には、引数として文字エンコーディングの名前をとる String コンストラクタ、またはプラットフォームのデフォルトのエンコーディングを使用する String コンストラクタの使用が推奨されます。
String(byte[] bytes, int offset, int length)
          プラットフォームのデフォルトの文字エンコーディングを使って、指定されたバイト列の部分配列を変換することによって、新しい String を構築します。
String(byte[] ascii, int hibyte, int offset, int count)
          推奨されていません。 このメソッドでは、バイトから文字への変換が正しく行われません。JDK 1.1 以降では、バイトから文字への変換には、引数として文字エンコーディングの名前をとる String コンストラクタ、またはプラットフォームのデフォルトのエンコーディングを使用する String コンストラクタの使用が推奨されます。
String(byte[] bytes, int offset, int length, String enc)
          指定された文字エンコーディングを使用して、指定されたバイト部分配列を変換することによって、新しい String を構築します。
String(byte[] bytes, String enc)
          指定された文字エンコーディングを使って、指定されたバイト配列の変換を行うことによって、新しい String を構築します。
String(char[] value)
          新しい String を割り当てて、これが文字配列引数に現在含まれている文字シーケンスを表すようにします。
String(char[] value, int offset, int count)
          文字配列引数の部分配列からなる文字を含む新しい String を割り当てます。
String(String value)
          新しく生成された String オブジェクトを初期化して、引数と同じ文字シーケンスを表すようにします。
String(StringBuffer buffer)
          StringBuffer 型の引数に現在含まれている文字列を持つ新しい文字列を構築します。
 
メソッドの概要
 char charAt(int index)
          指定されたインデックス位置にある文字を返します。
 int compareTo(Object o)
          この String をほかの Object と比較します。
 int compareTo(String anotherString)
          2 つの文字列を辞書式に比較します。
 int compareToIgnoreCase(String str)
          大文字小文字の区別なしで、2 つの文字列を辞書式に比較します。
 String concat(String str)
          指定された文字列をこの文字列の最後に連結します。
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 を比較します。
 byte[] getBytes()
          String をプラットフォームのデフォルトの文字エンコーディングに従ってバイトに変換し、結果を新しいバイト配列に格納します。
 void getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
          推奨されていません。 このメソッドでは、文字からバイトへの変換が正しく行われません。JDK 1.1 以降では、文字からバイトへの変換には、引数として文字エンコーディング名をとる getBytes(String enc) メソッド、またはプラットフォームのデフォルトのエンコーディングを使用する getBytes() メソッドの使用が推奨されます。
 byte[] getBytes(String enc)
          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()
          文字列オブジェクトの正準表現を返します。
 int lastIndexOf(int ch)
          この文字列内で、指定された文字が最後に出現する位置のインデックスを返します。
 int lastIndexOf(int ch, int fromIndex)
          この文字列内で、指定された文字が最後に出現する位置のインデックスを返します (検索は指定されたインデックスから開始され、先頭方向に行われる)。
 int lastIndexOf(String str)
          この文字列内で、指定された部分文字列が一番右に出現する位置のインデックスを返します。
 int lastIndexOf(String str, int fromIndex)
          この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。
 int length()
          この文字列の長さを返します。
 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 に置換した結果生成される、新しい文字列を返します。
 boolean startsWith(String prefix)
          この文字列が、指定された接頭辞で始まるかどうかを判定します。
 boolean startsWith(String prefix, int toffset)
          この文字列の指定されたインデックス以降の部分文字列が、指定された接頭辞で始まるかどうかを判定します。
 String substring(int beginIndex)
          この文字列の部分文字列である新しい文字列を返します。
 String substring(int beginIndex, int endIndex)
          この文字列の部分文字列である新しい文字列を返します。
 char[] toCharArray()
          この文字列を新しい文字配列に変換します。
 String toLowerCase()
          Locale.getDefault によって返されるデフォルトロケールの規則を使って、この String 内のすべての文字を小文字に変換します。
 String toLowerCase(Locale locale)
          指定された Locale の規則を使用して、この String 内のすべての文字を小文字に変換します。
 String toString()
          このオブジェクト (すでに文字列である) 自身が返されます。
 String toUpperCase()
          Locale.getDefault によって返されるデフォルトロケールの規則を使って、この String 内のすべての文字を大文字に変換します。
 String toUpperCase(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 CASE_INSENSITIVE_ORDER
compareToIgnoreCase の場合と同じように String オブジェクトを順序付ける Comparator を返します。このコンパレータは直列化可能です。

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

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

String

public String()
新しく生成された String オブジェクトを初期化して、空の文字シーケンスを表すようにします。

String

public String(String value)
新しく生成された String オブジェクトを初期化して、引数と同じ文字シーケンスを表すようにします。つまり、新しく作成された文字列は引数文字列のコピーになります。
パラメータ:
value - String

String

public String(char[] value)
新しい String を割り当てて、これが文字配列引数に現在含まれている文字シーケンスを表すようにします。文字配列の内容がコピーされます。コピー後に文字配列が変更されても、新しく作成された文字列には影響しません。
パラメータ:
value - 文字列の初期値
例外:
NullPointerException - valuenull の場合

String

public String(char[] value,
              int offset,
              int count)
文字配列引数の部分配列からなる文字を含む新しい String を割り当てます。引数 offset は部分配列の先頭の文字のインデックスであり、引数 count は部分配列の長さを指定します。部分配列の内容がコピーされます。コピー後に文字配列が変更されても、新しく作成された文字列には影響しません。
パラメータ:
value - 文字列のソースである配列
offset - 初期オフセット
count - 長さ
例外:
IndexOutOfBoundsException - offset および count 引数によるインデックス文字列が value 配列の範囲外となる場合
NullPointerException - valuenull の場合

String

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

8 ビット整数値配列の部分配列によって構築される新しい String を割り当てます。

引数 offset は部分配列の先頭のバイトのインデックスであり、引数 offset は部分配列の長さを指定します。

部分配列の各 byte は上記メソッドに指定される char に変換されます。

パラメータ:
ascii - 文字列に変換されるバイト
hibyte - 16 ビットの各 Unicode 文字列の上位 8 ビット
offset - 初期オフセット
count - 長さ
例外:
IndexOutOfBoundsException - 引数 offset または count が無効な場合
NullPointerException - asciinull の場合
関連項目:
String(byte[], int), String(byte[], int, int, java.lang.String), String(byte[], int, int), String(byte[], java.lang.String), String(byte[])

String

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

8 ビット整数値の配列からなる文字を持つ新しい String を割り当てます。その結果として生成される文字列のそれぞれの文字 c は、以下のようなバイト配列内の対応する要素 b から構成されます。

     c == (char)(((hibyte & 0xff) << 8)
                         | (b & 0xff))
 
パラメータ:
ascii - 文字列に変換されるバイト
hibyte - 16 ビットの各 Unicode 文字列の上位 8 ビット
例外:
NullPointerException - asciinull の場合
関連項目:
String(byte[], int, int, java.lang.String), String(byte[], int, int), String(byte[], java.lang.String), String(byte[])

String

public String(byte[] bytes,
              int offset,
              int length,
              String enc)
       throws UnsupportedEncodingException
指定された文字エンコーディングを使用して、指定されたバイト部分配列を変換することによって、新しい String を構築します。新しい String の長さはエンコーディングによって変わるので、部分配列長と一致しないことがあります。
パラメータ:
bytes - 文字列に変換されるバイト
offset - 変換を行う先頭のバイトのインデックス
length - 変換を行うバイト数
enc - サポートされる「文字エンコーディング」の名前
例外:
UnsupportedEncodingException - 指定された文字エンコーディングがサポートされていない場合
IndexOutOfBoundsException - offset および count 引数インデックスによる文字列が value 配列の範囲外となる場合
導入されたバージョン:
JDK1.1

String

public String(byte[] bytes,
              String enc)
       throws UnsupportedEncodingException
指定された文字エンコーディングを使って、指定されたバイト配列の変換を行うことによって、新しい String を構築します。新しい String の長さはエンコーディングによって変わるので、バイト配列長と一致しないことがあります。
パラメータ:
bytes - 文字列に変換されるバイト
enc - サポートされる「文字エンコーディング」の名前
例外:
UnsupportedEncodingException - 指定された文字エンコーディングがサポートされていない場合
導入されたバージョン:
JDK1.1

String

public String(byte[] bytes,
              int offset,
              int length)
プラットフォームのデフォルトの文字エンコーディングを使って、指定されたバイト列の部分配列を変換することによって、新しい String を構築します。新しい String の長さはエンコーディングによって変わるので、部分配列の長さと一致しないことがあります。
パラメータ:
bytes - 文字列に変換されるバイト
offset - 変換を行う先頭のバイトのインデックス
length - 変換を行うバイト数
導入されたバージョン:
JDK1.1

String

public String(byte[] bytes)
プラットフォームのデフォルトの文字エンコーディングを使って、指定されたバイト配列を変換することによって新しい String を構築します。新しい String の長さはエンコーディングによって変わるので、バイト配列の長さと一致しないことがあります。
パラメータ:
bytes - 文字列に変換されるバイト
導入されたバージョン:
JDK1.1

String

public String(StringBuffer buffer)
StringBuffer 型の引数に現在含まれている文字列を持つ新しい文字列を構築します。文字列バッファの内容がコピーされます。コピー後に文字列バッファが変更されても、新しく作成された文字列には影響しません。
パラメータ:
buffer - StringBuffer
例外:
NullPointerException - buffernull の場合
メソッドの詳細

length

public int length()
この文字列の長さを返します。長さは文字列内の 16 ビット Unicode 文字の数に等しくなります。
戻り値:
このオブジェクトによって表される文字シーケンスの長さ

charAt

public char charAt(int index)
指定されたインデックス位置にある文字を返します。インデックスは、0length() - 1 の範囲になります。配列のインデックス付けの場合と同じように、文字列の最初の文字のインデックスは 0、次の文字のインデックスは 1 と続きます。
パラメータ:
index - 文字のインデックス
戻り値:
文字列内の指定されたインデックス位置にある文字。最初の文字のインデックスが 0 になる
例外:
IndexOutOfBoundsException - index 引数が負の値、または文字列の長さと同じかこれより大きい値の場合

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
より大きい場合
NullPointerException - dstnull の場合

getBytes

public void getBytes(int srcBegin,
                     int srcEnd,
                     byte[] dst,
                     int dstBegin)
推奨されていません。 このメソッドでは、文字からバイトへの変換が正しく行われません。JDK 1.1 以降では、文字からバイトへの変換には、引数として文字エンコーディング名をとる getBytes(String enc) メソッド、またはプラットフォームのデフォルトのエンコーディングを使用する getBytes() メソッドの使用が推奨されます。

この文字列から、転送先のバイト配列に文字をコピーします。各バイトは対応する文字の下位 8 ビットを受け取ります。各文字の上位 8 ビットはコピーされず、転送されることはありません。

コピーされる最初の文字のインデックスは srcBegin、コピーされる最後の文字のインデックスは srcEnd-1 です。したがって、コピーされる文字数は srcEnd-srcBegin となります。文字はバイトに変換されて dst の部分配列にコピーされます。始点のインデックスが dstBegin で、終点のインデックスは次のようになります。

     dstbegin + (srcEnd-srcBegin) - 1
 
パラメータ:
srcBegin - コピー対象文字列内の最初の文字のインデックス
srcEnd - コピー対象文字列内の最後の文字のあとのインデックス
dst - コピー先配列
dstBegin - コピー先の配列内での開始座標
例外:
IndexOutOfBoundsException - 次のどれかの場合
  • srcBegin が負の値の場合
  • srcBeginsrcEnd より大きい場合
  • srcEnd がこの String の長さより大きい場合
  • dstBegin が負の値の場合
  • dstBegin+(srcEnd-srcBegin)dst.length より大きい場合
    NullPointerException - dstnull の場合

getBytes

public byte[] getBytes(String enc)
                throws UnsupportedEncodingException
String を指定された文字エンコーディングに従ってバイトに変換し、結果を新しいバイト配列に格納します。
パラメータ:
enc - サポートされる「文字エンコーディング」の名前
戻り値:
結果のバイト配列
例外:
UnsupportedEncodingException - 指定された文字エンコーディングがサポートされていない場合
導入されたバージョン:
JDK1.1

getBytes

public byte[] getBytes()
String をプラットフォームのデフォルトの文字エンコーディングに従ってバイトに変換し、結果を新しいバイト配列に格納します。
戻り値:
結果のバイト配列
導入されたバージョン:
JDK1.1

equals

public boolean equals(Object anObject)
この文字列と指定されたオブジェクトを比較します。引数が null でなく、このオブジェクトと同じ文字シーケンスを表す String オブジェクトである場合にだけ、結果は true になります。
オーバーライド:
クラス Object 内の equals
パラメータ:
anObject - この String と比較されるオブジェクト
戻り値:
String が等しい場合は true、そうでない場合は false
関連項目:
compareTo(java.lang.String), equalsIgnoreCase(java.lang.String)

equalsIgnoreCase

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

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

パラメータ:
anotherString - この String と比較される String
戻り値:
引数が null でなく String が等しい場合は true、そうでない場合は false
関連項目:
equals(Object), Character.toLowerCase(char), Character.toUpperCase(char)

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()
 
パラメータ:
anotherString - 比較対象の String
戻り値:
引数文字列がこの文字列に等しい場合は、値 0。この文字列が文字列引数より辞書式に小さい場合は、0 より小さい値。この文字列が文字列引数より辞書式に大きい場合は、0 より大きい値
例外:
NullPointerException - anotherStringnull の場合

compareTo

public int compareTo(Object o)
この String をほかの Object と比較します。Object が String の場合、この関数は compareTo(String) と同じ動作になります。そうでない場合は ClassCastException をスローします (String の比較は String 同士でしか行えないため)。
定義:
インタフェース Comparable 内の compareTo
パラメータ:
o - 比較対象の Object
戻り値:
引数文字列がこの文字列と辞書式に等しい場合は、値 0。引数がこの文字列より辞書式に大きい文字列である場合は、0 より小さい値。引数がこの文字列より辞書式に小さい場合は、0 より大きい値
例外:
ClassCastException - 引数が String ではない場合
導入されたバージョン:
1.2
関連項目:
Comparable

compareToIgnoreCase

public int compareToIgnoreCase(String str)
大文字小文字の区別なしで、2 つの文字列を辞書式に比較します。このメソッドは、this.toUpperCase().toLowerCase().compareTo(str.toUpperCase().toLowerCase()) の符号を持つ整数を返します。

このメソッドはロケールを考慮しないので、一部のロケールでは、正しい順序に並べられないことがあります。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
例外:
NullPointerException - othernull の場合

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)
の式の結果と同じ
例外:
NullPointerException - prefixnull の場合

startsWith

public boolean startsWith(String prefix)
この文字列が、指定された接頭辞で始まるかどうかを判定します。
パラメータ:
prefix - 接頭辞
戻り値:
引数によって表される文字列が、この文字列によって表される文字列の接頭辞である場合は true、そうでない場合は false。引数が空の文字列の場合や、equals(Object) メソッドによる判定においてこの String オブジェクトに等しい場合にも true が返される
例外:
NullPointerException - prefixnull の場合
導入されたバージョン:
JDK1. 0

endsWith

public boolean endsWith(String suffix)
この文字列が、指定された接尾辞で終るかどうかを判定します。
パラメータ:
suffix - 接尾辞
戻り値:
引数によって表される文字シーケンスが、このオブジェクトによって表される文字シーケンスの接尾辞である場合は true、そうでない場合は false。引数が空の文字列の場合や、String オブジェクトが equals(Object) メソッドによる判定においてこの String オブジェクトに等しい場合にも、結果は true になる
例外:
NullPointerException - suffixnull の場合

hashCode

public int hashCode()
この文字列のハッシュコードを返します。String オブジェクトのハッシュコードは、int 演算を使用して次のようにして計算されます。
 
 s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
 
int 算術を使います。s[i] は文字列の i 番目の文字、n は文字列の長さ、^ はべき乗を示します。空の文字列のハッシュ値は 0 です。
オーバーライド:
クラス Object 内の hashCode
戻り値:
このオブジェクトのハッシュコード値

indexOf

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

indexOf

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

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

 (this.charAt(k) == ch) && (k >= fromIndex)
 
該当する文字がこの文字列内または位置 fromIndex 以降にない場合は -1 が返されます。

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

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

lastIndexOf

public int lastIndexOf(int ch)
この文字列内で、指定された文字が最後に出現する位置のインデックスを返します。つまり、返されるインデックスは、次の式が true となるような最大の k です。
 this.charAt(k) == ch
 
String の検索は最後の文字から開始され、先頭方向に行われます。
パラメータ:
ch - 文字
戻り値:
このオブジェクトによって表される文字シーケンス内で、指定された文字が最後に出現する位置のインデックス。文字がない場合は -1

lastIndexOf

public int lastIndexOf(int ch,
                       int fromIndex)
この文字列内で、指定された文字が最後に出現する位置のインデックスを返します (検索は指定されたインデックスから開始され、先頭方向に行われる)。つまり、返されるインデックスは、
 this.charAt(k) == ch) && (k <= fromIndex)
 
が true となるような最大の k です。
パラメータ:
ch - 文字
fromIndex - 検索を開始するインデックス。fromIndex の値に対して制約はない。この文字列の長さと同じかこれより大きい場合は、この文字列の長さより 1 小さい場合と同じ結果になり、この文字列全体が検索される。負の値の場合は、-1 の場合と同じ結果になり、-1 が返される
戻り値:
このオブジェクトによって表される文字シーケンス内で、指定された文字が fromIndex と同じかこれより小さいインデックス位置に最後に出現する位置のインデックス。指定された文字がその位置より前にない場合は -1

indexOf

public int indexOf(String str)
この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。返される整数は、
 this.startsWith(str, k)
 
上の式が true となるような最小の k です。
パラメータ:
str - 任意の文字列
戻り値:
文字列引数がこのオブジェクト内の部分文字列である場合は、該当する最初の部分文字列の最初の文字のインデックス。部分文字列がない場合は -1
例外:
NullPointerException - strnull の場合

indexOf

public int indexOf(String str,
                   int fromIndex)
指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。返される整数は、
 this.startsWith(str, k) && (k >= fromIndex)
 
上の式が true となるような最小の k です。

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

パラメータ:
str - 検索対象の部分文字列
fromIndex - 検索開始位置のインデックス
戻り値:
文字列引数がこのオブジェクト内の fromIndex より大きい開始インデックスにある部分文字列である場合は、該当する最初の部分文字列の最初の文字のインデックス。fromIndex 以降で始まる部分文字列がない場合は -1
例外:
NullPointerException - strnull の場合

lastIndexOf

public int lastIndexOf(String str)
この文字列内で、指定された部分文字列が一番右に出現する位置のインデックスを返します。空の文字列 "" の一番右に出現した位置が、this.length() と見なされます。返されるインデックスは、
 this.startsWith(str, k)
 
上の式が true となるような最大の k です。
パラメータ:
str - 検索対象の部分文字列
戻り値:
文字列引数がこのオブジェクト内の部分文字列として 1 回以上出現する場合は、該当する最後の部分文字列の最初の文字のインデックス。部分文字列として出現しない場合は、-1
例外:
NullPointerException - strnull の場合

lastIndexOf

public int lastIndexOf(String str,
                       int fromIndex)
この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。返されたインデックスは部分文字列の先頭を表し、fromIndex と同じか、それより小さい値である必要があります。つまり、返されるインデックスは、次の式に該当する最大の k です。
 this.startsWith(str, k) && (k <= fromIndex)
 
パラメータ:
str - 検索対象の部分文字列
fromIndex - 検索開始位置のインデックス。fromIndex の値に対して制約はありません。この文字列の長さより大きい場合は、この文字列の長さに等しい場合と同じ結果になり、この文字列全体が検索される。負の値の場合は、-1 の場合と同じ結果になり、-1 が返される
戻り値:
文字列引数が、このオブジェクト内で fromIndex と等しいかそれより小さいインデックスから始まる部分文字列として 1 回以上出現する場合は、該当する最後の部分文字列の最初の文字のインデックス。fromIndex またはそれ以前で始まる部分文字列として出現しない場合は、-1
例外:
NullPointerException - strnull の場合

substring

public String substring(int beginIndex)
この文字列の部分文字列である新しい文字列を返します。部分文字列は指定されたインデックスで始まり、この文字列の最後までになります。

  "unhappy".substring(2) では "happy" が返される
  "Harbison".substring(3) では "bison" が返される
  "emptiness".substring(9) では "" (空の文字列) が返される
 
パラメータ:
beginIndex - 開始インデックス (この値を含む)
戻り値:
指定された部分文字列
例外:
IndexOutOfBoundsException - beginIndex が負の値の場合、あるいはこの String オブジェクトの長さより大きい場合

substring

public String substring(int beginIndex,
                        int endIndex)
この文字列の部分文字列である新しい文字列を返します。部分文字列は、指定された beginIndex から始まり、インデックス endIndex - 1 にある文字までです。したがって、部分文字列の長さは endIndex-beginIndex になります。

  "hamburger".substring(4, 8) では "urge" が返される
  "smiles".substring(1, 5) では "mile" が返される
 
パラメータ:
beginIndex - 開始インデックス (この値を含む)
endIndex - 終了インデックス (この値を含まない)
戻り値:
指定された部分文字列
例外:
IndexOutOfBoundsException - beginIndex が負の値である場合、endIndex がこの String オブジェクトの長さより大きい場合、あるいは beginIndexendIndex より大きい場合

concat

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

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

  "cares".concat("s") では "caress" が返される
  "to".concat("get").concat("her") では "together" が返される
 
パラメータ:
str - この String の最後に連結される String
戻り値:
このオブジェクトの文字列の後に文字列引数で表される文字を連結したものを表す文字列
例外:
NullPointerException - strnull の場合

replace

public String replace(char oldChar,
                      char newChar)
この文字列内にあるすべての oldCharnewChar に置換した結果生成される、新しい文字列を返します。

文字 oldChar がこの String オブジェクトによって表される文字列内にない場合は、この String オブジェクトへの参照が返されます。そうでない場合は、この String オブジェクトによって表される文字列と同じ文字列を表す、新しい String オブジェクトが生成されます。ただし、文字列内の oldChar はすべて newChar に置換されます。

  "mesquite in your cellar".replace('e', 'o') では
         		 "mosquito in your collar" が返される
  "the war of baronets".replace('r', 'y') では
         		 "the way of bayonets" が返される
  "sparring with a purple porpoise".replace('p', 't') では
         		 "starring with a turtle tortoise" が返される
  "JonL".replace('q', 'x') では "JonL" (変更なし) が返される
 
パラメータ:
oldChar - 以前の文字
newChar - 新しい文字
戻り値:
この文字列内のすべての oldCharnewChar に置換することによって生成された文字列

toLowerCase

public String toLowerCase(Locale locale)
指定された Locale の規則を使用して、この String 内のすべての文字を小文字に変換します。通常、文字の変換は Character.toLowerCase を呼び出すことによって行われます。次の表に、この規則の例外を示します。

ロケールの言語コード 大文字 小文字 説明
tr (トルコ語) \u0130 \u0069 上に点が付いた大文字の I -> 小文字の i
tr (トルコ語) \u0049 \u0131 大文字の I -> 点のない小文字の i
パラメータ:
locale - このロケールの大文字小文字変換規則を使用する
戻り値:
小文字に変換される String
導入されたバージョン:
JDK1.1
関連項目:
Character.toLowerCase(char), toUpperCase(Locale)

toLowerCase

public String toLowerCase()
Locale.getDefault によって返されるデフォルトロケールの規則を使って、この String 内のすべての文字を小文字に変換します。

Character によって定義されている toLowerCase メソッドの呼び出しの結果、異なるバージョンの小文字を持つ文字が文字列内になかった場合は、元の文字列が返されます。

そうでない場合は、この String オブジェクトによって表される文字列と長さが同じで、この String オブジェクトの対応する文字に Character.toLowerCase メソッドを適用した結果とすべての文字が等しい文字列を表す、新しい String オブジェクトが生成されます。

  "French Fries".toLowerCase() では "french fries" が返される
 "".toLowerCase() では "" が返される
 
戻り値:
小文字に変換された文字列
関連項目:
Character.toLowerCase(char), toLowerCase(Locale)

toUpperCase

public String toUpperCase(Locale locale)
指定されたロケールの規則を使用して、この String 内のすべての文字を大文字に変換します。通常、文字の変換は Character.toUpperCase を呼び出すことによって行われます。次の表に、この規則の例外を示します。

ロケールの言語コード 小文字 大文字 説明
tr (トルコ語) \u0069 \u0130 小文字の i -> 上に点が付いた大文字の I
tr (トルコ語) \u0131 \u0049 点のない小文字の i -> 小文字の I
(すべて) \u00df \u0053 \u0053 小文字のシャープ s -> SS の 2 文字
パラメータ:
locale - このロケールの大文字小文字変換規則を使用する
戻り値:
大文字に変換された String
導入されたバージョン:
JDK1.1
関連項目:
Character.toUpperCase(char), toLowerCase(Locale)

toUpperCase

public String toUpperCase()
Locale.getDefault によって返されるデフォルトロケールの規則を使って、この String 内のすべての文字を大文字に変換します。

Character によって定義されている toUpperCase メソッドの呼び出しの結果、異なるバージョンの大文字を持つ文字が文字列内になかった場合は、元の文字列が返されます。

そうでない場合は、この String オブジェクトによって表される文字列と長さが同じで、この String オブジェクトの対応する文字に Character.toUpperCase メソッドを適用した結果とすべての文字が等しい文字列を表す、新しい String オブジェクトが生成されます。

  "Fahrvergnügen".toUpperCase() では "FAHRVERGNÜGEN" が返される
  "Visit Ljubinje!".toUpperCase() では "VISIT LJUBINJE!" が返される
 
戻り値:
大文字に変換された文字列
関連項目:
Character.toUpperCase(char), toUpperCase(Locale)

trim

public String trim()
この文字列の両端から空白を除去します。

この String オブジェクトが空の文字列を表す場合、あるいはこの String オブジェクトによって表される文字列の最初と最後の文字のコードがいずれも '\u0020' (スペース文字) より大きい場合は、この String オブジェクトへの参照が返されます。

文字列内に '\u0020' より大きいコードの文字がない場合は、空の文字列を表す新しい String オブジェクトが生成されて返されます。

たとえば、k が文字列内の最初の文字のインデックスであり、'\u0020' より大きいコード値を持ち、m が文字列内の最後の文字のインデックスであり、'\u0020' より大きいコード値を持つ場合は、インデックス k にある文字で始まり、インデックス m にある文字で終る、この文字列の部分文字列を表す新しい String オブジェクトが生成されます。つまり、これは this.substring(km+1) の結果と同じです。

このメソッドは文字列の先頭と最後から空白を切り取るために使用できます。この場合、実際には、すべての ASCII 制御文字も切り取りられます。

戻り値:
前後の空白が削除されたこの文字列

toString

public String toString()
このオブジェクト (すでに文字列である) 自身が返されます。
オーバーライド:
クラス Object 内の toString
戻り値:
文字列自身

toCharArray

public char[] toCharArray()
この文字列を新しい文字配列に変換します。
戻り値:
新しく割り当てられた文字配列。長さはこの文字列の長さと同じで、内容はこの文字列によって表される文字シーケンスが格納されるように初期化されている

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 - char 配列
戻り値:
文字配列引数に格納されている同一シーケンスの文字群を表す、新しく割り当てられた文字列

valueOf

public static String valueOf(char[] data,
                             int offset,
                             int count)
char 配列引数の特定の部分配列の文字列表現を返します。

offset 引数は部分配列の最初の文字のインデックスを表します。count 引数は部分配列の長さを表します。部分配列の内容がコピーされます。コピー後に文字配列が変更されても、新しく作成された文字列には影響しません。

パラメータ:
data - 文字配列
offset - String の値への初期オフセット
count - String の値の長さ
戻り値:
文字配列引数の部分配列に格納されている文字シーケンスを表す、新しく割り当てられた文字列
例外:
NullPointerException - datanull の場合
IndexOutOfBoundsException - offset が負の値の場合、count が負の値の場合、あるいは offset+countdata.length より大きい場合

copyValueOf

public static String copyValueOf(char[] data,
                                 int offset,
                                 int count)
指定された文字配列と同一の String を返します。新しい配列を作成し、文字をその中にコピーします。
パラメータ:
data - 文字配列
offset - 部分配列の初期オフセット
count - 部分配列の長さ
戻り値:
文字配列内の指定された部分配列の文字が格納されている String

copyValueOf

public static String copyValueOf(char[] data)
指定された文字配列と同一の String を返します。新しい配列を作成し、文字をその中にコピーします。
パラメータ:
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 つの文字列 st においては、s.equals(t)true の場合にのみ、s.intern() == t.intern()true になります。

すべてのリテラル文字列および文字列値定数式が保持されます。文字列リテラルは、「Java 言語仕様」の 3.10.5 で定義されています。

戻り値:
この文字列と同じ内容だが、一意の文字列のプールからのものであることが保証されている文字列

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.