モジュール java.base
パッケージ java.lang

クラスString

java.lang.Object
java.lang.String
すべての実装されたインタフェース:
Serializable, CharSequence, Comparable<String>, Constable, ConstantDesc

public final class String extends Object implements Serializable, Comparable<String>, CharSequence, Constable, ConstantDesc
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のバージョンに応じて、StringBufferStringBuilderまたはjava.lang.invoke.StringConcatFactoryの演算子を実装できます。 文字列変換の実装は、通常、Objectによって定義され、Javaのすべてのクラスによって継承されるメソッドtoStringを介して行われます。
Java言語仕様を参照してください:
15.18.1 文字列連結演算子+
導入されたバージョン:
1.0
関連項目: