モジュール 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
関連項目:
Object.toString(), StringBuffer, StringBuilder, Charset, 直列化された形式
  • フィールドのサマリー

    フィールド
    修飾子と型 フィールド 説明
    static Comparator<String> CASE_INSENSITIVE_ORDER
    compareToIgnoreCaseの場合と同じように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)
    文字列ビルダー引数に現在含まれている文字列を持つ新しい文字列を割り当てます。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    char charAt​(int index)
    指定されたインデックスのchar値を返します。
    IntStream chars()
    このシーケンスのchar値をゼロ拡張したintを含むストリームを返します。
    int codePointAt​(int index)
    指定されたインデックス位置の文字(Unicodeコード・ポイント)を返します。
    int codePointBefore​(int index)
    指定されたインデックスの前の文字(Unicodeコード・ポイント)を返します。
    int codePointCount​(int beginIndex, int endIndex)
    このStringの指定されたテキスト範囲のUnicodeコード・ポイントの数を返します。
    IntStream codePoints()
    このシーケンスからコード・ポイント値のストリームを返します。
    int compareTo​(String anotherString)
    2つの文字列を辞書的に比較します。
    int compareToIgnoreCase​(String str)
    大文字と小文字の区別なしで、2つの文字列を辞書的に比較します。
    String concat​(String str)
    指定された文字列をこの文字列の最後に連結します。
    boolean contains​(CharSequence s)
    この文字列が指定されたchar値のシーケンスを含む場合に限りtrueを返します。
    boolean contentEquals​(CharSequence cs)
    この文字列と指定されたCharSequenceを比較します。
    boolean contentEquals​(StringBuffer sb)
    この文字列と指定されたStringBufferを比較します。
    static String copyValueOf​(char[] data)
    valueOf(char[])と同等です。
    static String copyValueOf​(char[] data, int offset, int count)
    valueOf(char[], int, int)と同等です。
    Optional<String> describeConstable()
    このインスタンス自体の名目記述子を含むOptionalを返します。
    boolean endsWith​(String suffix)
    この文字列が、指定された接尾辞で終るかどうかを判定します。
    boolean equals​(Object anObject)
    この文字列と指定されたオブジェクトを比較します。
    boolean equalsIgnoreCase​(String anotherString)
    大文字と小文字を区別せずに、このStringを別のStringと比較します。
    static String format​(String format, Object... args)
    指定された書式の文字列と引数を使って、書式付き文字列を返します。
    static String format​(Locale l, String format, Object... args)
    指定されたロケール、書式文字列、および引数を使って、フォーマットされた文字列を返します。
    String formatted​(Object... args)
    この文字列を書式文字列として使用し、指定された引数を書式設定します。
    byte[] getBytes()
    プラットフォームのデフォルトの文字セットを使用してこのStringをバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納します。
    void getBytes​(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
    非推奨。
    このメソッドでは、文字からバイトへの変換が正しく行われません。
    byte[] getBytes​(String charsetName)
    指定された文字セットを使用してこのStringをバイト・シーケンスにエンコードし、結果を新規バイト配列に格納します。
    byte[] getBytes​(Charset charset)
    指定された文字セットを使用してこのStringをバイト・シーケンスに符号化し、結果を新規バイト配列に格納します。
    void getChars​(int srcBegin, int srcEnd, char[] dst, int dstBegin)
    この文字列から、コピー先の文字配列に文字をコピーします。
    int hashCode()
    この文字列のハッシュ・コードを返します。
    String indent​(int n)
    nの値に基づいてこの文字列の各行のインデントを調整し、行の終了文字を正規化します。
    int indexOf​(int ch)
    この文字列内で、指定された文字が最初に出現する位置のインデックスを返します。
    int indexOf​(int ch, int fromIndex)
    この文字列内で、指定されたインデックスから検索を開始し、指定された文字が最初に出現する位置のインデックスを返します。
    int indexOf​(String str)
    この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。
    int indexOf​(String str, int fromIndex)
    指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。
    String intern()
    文字列オブジェクトの正準表現を返します。
    boolean isBlank()
    文字列が空かwhite spaceコード・ポイントのみが含まれる場合はtrueを戻し、それ以外の場合はfalseを返します。
    boolean isEmpty()
    length()0の場合にのみ、trueを返します。
    static String join​(CharSequence delimiter, CharSequence... elements)
    指定されたdelimiterのコピーを使用して結合されたCharSequence要素のコピーからなる新しいStringを返します。
    static String join​(CharSequence delimiter, Iterable<? extends CharSequence> elements)
    指定されたdelimiterのコピーを使用して結合されたCharSequence要素のコピーからなる新しいStringを返します。
    int lastIndexOf​(int ch)
    この文字列内で、指定された文字が最後に出現する位置のインデックスを返します。
    int lastIndexOf​(int ch, int fromIndex)
    この文字列内で、指定された文字が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先頭方向に行われる)。
    int lastIndexOf​(String str)
    この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。
    int lastIndexOf​(String str, int fromIndex)
    この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先頭方向に行われる)。
    int length()
    この文字列の長さを戻します。
    Stream<String> lines()
    この文字列から抽出された行のストリームを、行終了記号で区切りて返します。
    boolean matches​(String regex)
    この文字列が、指定された正規表現と一致するかどうかを判定します。
    int offsetByCodePoints​(int index, int codePointOffset)
    このString内で、指定されたindexからcodePointOffsetコード・ポイント分だけオフセットされた位置のインデックスを返します。
    boolean regionMatches​(boolean ignoreCase, int toffset, String other, int ooffset, int len)
    2つの文字列領域が等しいかどうかを判定します。
    boolean regionMatches​(int toffset, String other, int ooffset, int len)
    2つの文字列領域が等しいかどうかを判定します。
    String repeat​(int count)
    この文字列を連結した値がcount回繰り返される文字列を返します。
    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 resolveConstantDesc​(MethodHandles.Lookup lookup)
    このインスタンスをConstantDescとして解決します。その結果がインスタンス自体です。
    String[] split​(String regex)
    この文字列を、指定された正規表現に一致する位置で分割します。
    String[] split​(String regex, int limit)
    この文字列を、指定された正規表現に一致する位置で分割します。
    boolean startsWith​(String prefix)
    この文字列が、指定された接頭辞で始まるかどうかを判定します。
    boolean startsWith​(String prefix, int toffset)
    この文字列の指定されたインデックス以降の部分文字列が、指定された接頭辞で始まるかどうかを判定します。
    String strip()
    値がこの文字列であり、先頭と末尾のすべてのwhite spaceが削除されている文字列を返します。
    String stripIndent()
    偶然のwhite spaceをあらゆる行の最初と最後から削除して、値がこの文字列である文字列を返します。
    String stripLeading()
    すべての先行white spaceが削除されて、値がこの文字列である文字列を返します。
    String stripTrailing()
    値がこの文字列で、すべての後続white spaceが削除されている文字列を返します。
    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内のすべての文字を大文字に変換します。
    <R> R transform​(Function<? super String,​? extends R> f)
    このメソッドは、関数をthis文字列に適用します。
    String translateEscapes()
    文字列リテラルのように変換されたエスケープ・シーケンスを使用して、値がこの文字列の文字列を返します。
    String trim()
    値がこの文字列で、先頭と末尾のすべてのスペースが削除され、コード・ポイントが'U+0020' (空白文字)以下の文字でスペースが定義されている文字列を返します。
    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はロケールを考慮しないので、一部のロケールでは、正しい順序に並べられないことがあります。 Collatorクラスはロケールに依存した比較を提供します。

      導入されたバージョン:
      1.2
      関連項目:
      Collator
  • コンストラクタの詳細

    • String

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

      public String​(String original)
      新しく生成されたStringオブジェクトを初期化して、引数と同じ文字シーケンスを表すようにします。つまり、新しく作成された文字列は引数文字列のコピーになります。 Stringは不変なので、originalの明示的なコピーが必要でないかぎり、このコンストラクタを使う必要はありません。
      パラメータ:
      original -A 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は負であるか、またはoffsetvalue.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は負であるか、またはoffsetcodePoints.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は負であるか、またはoffsetascii.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は負であるか、またはoffsetbytes.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は負であるか、またはoffsetbytes.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は負であるか、またはoffsetbytes.length - lengthより大きい
      導入されたバージョン:
      1.1
    • String

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

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

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

      public String​(StringBuffer buffer)
      文字列バッファ引数に現在含まれている文字列を持つ新しい文字列を構築します。 文字列バッファの内容がコピーされます。コピー後に文字列バッファが変更されても、新しく作成された文字列には影響しません。
      パラメータ:
      buffer -A StringBuffer
    • 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を返します。
      定義:
      インタフェースCharSequence内のisEmpty
      戻り値:
      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 - 1char値が、ペアになっていない下位サロゲートであるか、または上位サロゲートである場合、そのサロゲート値が返されます。

      パラメータ:
      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)
      このString内で、指定されたindexからcodePointOffsetコード・ポイント分だけオフセットされた位置のインデックスを返します。 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が負である
      • srcBeginが次より大きい: srcEnd
      • srcEndがこの文字列の長さより大きい
      • 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になります。 CharSequenceStringBufferである場合、このメソッドはそれとの同期をとるので注意してください。

      細かい文字列の比較については、Collatorを参照してください。

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

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

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

      • 2つの文字が等しい(==演算子による比較)
      • 各文字に対してCharacter.toLowerCase(Character.toUpperCase(char))を呼び出すと同じ結果が得られます

      このメソッドはロケールを考慮せず、特定のロケールでは結果が不満足になることに注意してください。 Collatorクラスはロケールに依存した比較を提供します。

      パラメータ:
      anotherString - このStringと比較するString
      戻り値:
      引数がnullでなく、同等のString (大文字と小文字の区別なし)を表す場合はtrue、それ以外の場合は false
      関連項目:
      equals(Object)
    • 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の長さより大きい。
      • ignoreCasefalseであり、lenより小さく、負でない、次のような整数kがある:
         this.charAt(toffset+k) != other.charAt(ooffset+k)
         
      • ignoreCasetrueであり、lenより小さく、負でない、次のような整数kがある:
         Character.toLowerCase(Character.toUpperCase(this.charAt(toffset+k))) !=
         Character.toLowerCase(Character.toUpperCase(other.charAt(ooffset+k)))
         

      このメソッドはロケールを考慮しないため、ignoreCasetrueの場合、特定のロケールでは不満足な結果になります。 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が返されます。
       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の値に対して制約はない。 負の値の場合は、ゼロの場合と同じ結果になります。この文字列全体が検索されます。 この文字列の長さより大きい場合は、この文字列の長さに等しい場合と同じ結果になり、-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がほかの値の場合、次の式がtrueとなるような最大値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がほかの値の場合、次の式がtrueとなるような最大値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)
      この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。

      返されるインデックスは、次の式が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オブジェクトの長さより大きいか、あるいはbeginIndexendIndexより大きい場合。
    • 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が負の場合、endIndexlength()より大きい場合、またはbeginIndexendIndexより大きい場合
      導入されたバージョン:
      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)
      この文字列内にあるすべてのoldCharnewCharに置換した結果生成される文字列を返します。

      文字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 - 新しい文字。
      戻り値:
      この文字列内のすべてのoldCharnewCharに置換することによって生成された文字列。
    • 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パラメータは、このパターンの適用回数を制御するため、結果となる配列の長さに影響を及ぼします。

      • 「制限」が正の場合、パターンはほとんどの「制限」に適用されます。-1回は配列の長さが「制限」を超えることはなく、最後に一致したデリミタを超えるすべての入力が配列の最後のエントリに含まれます。

      • 「制限」がゼロの場合、パターンは可能なかぎり何度も適用され、配列には任意の長さを指定でき、後続の空の文字列は破棄されます。

      • 「制限」が負の場合、パターンは可能なかぎり適用され、配列の長さは任意になります。

      たとえば、次のパラメータが指定された場合の、文字列"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(strn)

      パラメータ:
      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を返します。
      次に例を示します。
      
           String message = String.join("-", "Java", "is", "cool");
           // message returned is: "Java-is-cool"
       
      要素がnullの場合は、"null"が追加されることに注意してください。
      パラメータ:
      delimiter - 各要素を区切る区切り文字
      elements - 結合する要素。
      戻り値:
      delimiterで区切られたelementsからなる新しいString
      例外:
      NullPointerException - delimiterまたはelementsnullである場合
      導入されたバージョン:
      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またはelementsnullである場合
      導入されたバージョン:
      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
      (all) French Fries french fries String内の文字すべてを小文字に変換
      (all) ΙΧΘΥΣ ιχθυσ 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のケース・マッピングの例を、次の表に示します。

      ロケール依存および1:Mのケース・マッピングの例。 ロケールの言語コード、小文字、大文字、および説明を示します。
      ロケールの言語コード 小文字 大文字 説明
      tr (トルコ語) \u0069 \u0130 小文字のi ->上に点が付いた大文字のI
      tr (トルコ語) \u0131 \u0049 点のない小文字のi ->大文字のI
      (all) \u00df \u0053 \u0053 小文字のシャープs -> SSの2文字
      (all) 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()
      値がこの文字列で、先頭と末尾のすべてのスペースが削除され、コード・ポイントが'U+0020' (空白文字)以下の文字でスペースが定義されている文字列を返します。

      このStringオブジェクトが空の文字シーケンスを表しているか、このStringオブジェクトが表す文字シーケンスの最初と最後の文字が両方とも(上で定義したように)のスペースではないコードを持っている場合は、このStringオブジェクトへの参照が返されます。

      それ以外の場合、この文字列のすべての文字が空白(上で定義したように)であると、空の文字列を表すStringオブジェクトが返されます。

      そうしない場合は、kを文字列の最初の文字のインデックスにし、そのコードが空白である(上で定義したように)ではなく、mをその文字列の最後の文字のインデックスにします(コードが空白(上で定義したように)ではない)。 インデックスkの文字で始まってインデックスmの文字で終わるこの文字列の部分文字列、つまりthis.substring(k, m + 1)の部分文字列を表すStringオブジェクトが返されます。

      このメソッドを使用して、文字列の先頭と末尾から(上で定義したように)のスペースをトリミングできます。

      戻り値:
      値がこの文字列で、先頭と末尾のすべてのスペースが削除されているか、先頭または末尾のスペースがない場合は文字列。
    • strip

      public String strip()
      値がこの文字列であり、先頭と末尾のすべてのwhite spaceが削除されている文字列を返します。

      このStringオブジェクトが空の文字列を表している場合、またはこの文字列内のすべてのコード・ポイントがwhite spaceである場合は、空の文字列が返されます。

      それ以外の場合は、最初のコード・ポイントで始まる文字列の部分文字列を返します。最初のコード・ポイントはwhite spaceではなく、white spaceではない最後のコード・ポイントを含みます。

      このメソッドを使用して、文字列の先頭と末尾からwhite spaceを削除できます。

      戻り値:
      値がこの文字列で、先頭と末尾の空白がすべて削除されている文字列
      導入されたバージョン:
      11
      関連項目:
      Character.isWhitespace(int)
    • stripLeading

      public String stripLeading()
      すべての先行white spaceが削除されて、値がこの文字列である文字列を返します。

      このStringオブジェクトが空の文字列を表している場合、またはこの文字列内のすべてのコード・ポイントがwhite spaceである場合は、空の文字列が返されます。

      それ以外の場合は、最初のコード・ポイントで始まる文字列の部分文字列を返します。最初のコード・ポイントはwhite spaceではなく、この文字列の最後のコード・ポイントまでです。

      このメソッドを使用すると、文字列の先頭からwhite spaceをトリミングできます。

      戻り値:
      値がこの文字列で、先頭に空白がすべて削除されている文字列
      導入されたバージョン:
      11
      関連項目:
      Character.isWhitespace(int)
    • stripTrailing

      public String stripTrailing()
      値がこの文字列で、すべての後続white spaceが削除されている文字列を返します。

      このStringオブジェクトが空の文字列を表す場合、またはこの文字列のすべての文字がwhite spaceの場合、空の文字列が返されます。

      それ以外の場合は、この文字列の先頭のコード・ポイントから開始し、white spaceではない最後のコード・ポイントまでの部分文字列を返します。

      このメソッドを使用すると、文字列の末尾からwhite spaceをトリミングできます。

      戻り値:
      値がこの文字列で、後続の空白がすべて削除されている文字列
      導入されたバージョン:
      11
      関連項目:
      Character.isWhitespace(int)
    • isBlank

      public boolean isBlank()
      文字列が空かwhite spaceコード・ポイントのみが含まれる場合はtrueを戻し、それ以外の場合はfalseを返します。
      戻り値:
      文字列が空か、white spaceコード・ポイントのみが含まれる場合はtrue(それ以外の場合はfalse)
      導入されたバージョン:
      11
      関連項目:
      Character.isWhitespace(int)
    • lines

      public Stream<String> lines()
      この文字列から抽出された行のストリームを、行終了記号で区切りて返します。

      「終了文字」は次のいずれかです: 行のフィード文字"\n" (U+000A)、改行文字"\r" (U+000D)、改行の直後に"\r\n" (U+000D U+000A)が続きます。

      lineは、行終了文字が続くゼロ文字以上のシーケンスであるか、または文字列の末尾に続く1文字以上の文字のシーケンスです。 線には、線の終端文字は含まれていません。

      このメソッドから返されるストリームには、この文字列からの行が出現順に含まれます。

      APIのノート:
      このlineの定義は、空の文字列には行がなく、文字列の終わりに行終了文字の後に空の行がないことを示しています。
      実装上のノート:
      このメソッドを使用すると、要素を遅延して提供し、改行記号をより高速に検索することによって、split("\R")よりパフォーマンスが向上します。
      戻り値:
      この文字列から抽出された行のストリーム
      導入されたバージョン:
      11
    • indent

      public String indent​(int n)
      nの値に基づいてこの文字列の各行のインデントを調整し、行の終了文字を正規化します。

      この文字列は、lines()を使用して概念的に複数の線に分割されています。 次に、各行は、下に説明するように調整され、後に行フィード"\n" (U+000A)が追加されます。 その後、結果の明細は連結されて返されます。

      n > 0の場合は、nスペース(U+0020)が各行の先頭に挿入されます。

      n < 0の場合、各行の先頭からn 「空白文字」までが削除されます。 特定の行に十分な空白がない場合は、先頭の「空白文字」すべてが削除されます。 各空白文字は1文字として扱われます。 特に、タブ文字"\t" (U+0009)は1文字とみなされ、展開されません。

      n == 0の場合、線は変わりません。 ただし、終了文字は正規化されたままです。

      パラメータ:
      n - 追加または削除する先行「空白文字」の数
      戻り値:
      字下げ調整済および行の終わりが正規化された文字列
      導入されたバージョン:
      12
      関連項目:
      lines(), isBlank(), Character.isWhitespace(int)
    • stripIndent

      public String stripIndent()
      偶然のwhite spaceをあらゆる行の最初と最後から削除して、値がこの文字列である文字列を返します。

      偶然のwhite spaceは、多くの場合、コンテンツを開始デリミタに揃えるためにテキスト・ブロックに存在します。 たとえば、次のコードでは、ドットは偶然のwhite spaceを表します:

       String html = """
       ..............<html>
       ..............    <body>
       ..............        <p>Hello, world</p>
       ..............    </body>
       ..............</html>
       ..............""";
       
      このメソッドは、偶然のwhite spaceを削除するインデントとして扱い、コンテンツの相対的なインデントを保持する文字列を生成します。 |を使用して、文字列の各行の開始をビジュアル化します:
       |<html>
       |    <body>
       |        <p>Hello, world</p>
       |    </body>
       |</html>
       
      最初に、この文字列の個々の行が抽出されます。 lineは、ゼロ文字以上の文字列で、その後に行終了文字または文字列の末尾が続きます。 文字列に少なくとも1つの行終端文字がある場合、最後の行は最後の終端文字と文字列の末尾の間の文字で構成されます。 それ以外の場合、文字列にターミネータがなければ、最後の行は文字列の先頭から文字列の末尾、つまり文字列全体になります。 線には、線の終端文字は含まれていません。

      次に、「最小インデント」 (分)は次のように決定されます:

      「分」値はこれらのカウントの最小値です。

      non-blankの各行で、「分」の主要なwhite space文字が削除され、後続のwhite space文字が削除されます。 「空白」の行は、空の文字列で置換されます。

      最後に、LF文字"\n" (U+000A)を使用して行が新しい文字列に結合されます。

      APIのノート:
      このメソッドの主な目的は、行のブロックを左にできるだけ奥まで移動しながら、相対的なインデントを保持することです。 そのため、最小インデントされていた行の先頭はwhite spaceではありません。 結果には、この文字列と同じ数の行終端文字が含まれます。 この文字列が行末で終わる場合、結果は行末記号で終わります。
      実装要件:
      このメソッドでは、すべてのwhite space文字が同じ幅で扱われます。 すべての行のインデントがすべて同じ文字シーケンスで一貫して構成されているかぎり、前述の結果は同じになります。
      戻り値:
      偶然のインデントが削除された文字列と正規化された行末
      導入されたバージョン:
      15
      関連項目:
      lines(), isBlank(), indent(int), Character.isWhitespace(int)
    • translateEscapes

      public String translateEscapes()
      文字列リテラルのように変換されたエスケープ・シーケンスを使用して、値がこの文字列の文字列を返します。

      エスケープ・シーケンスは次のように変換されます。

      変換
      [Esc] 名前 変換
      \b バックスペース U+0008
      \t 水平タブ U+0009
      \n ライン・フィード U+000A
      \f 改ページ U+000C
      \r 改行 U+000D
      \s space U+0020
      " 二重引用符 U+0022
      \' 一重引用符 U+0027
      \\ バックスラッシュ U+005C
      \0 - \377 8進エスケープ コード・ポイント等価
      \<line-terminator> continuation discard

      実装上のノート:
      このメソッドでは、"\u2022"などのUnicodeエスケープは変換されません。 Unicodeエスケープ文字は、入力文字を読み取るときにJavaコンパイラによって変換され、文字列リテラル仕様の一部ではありません。
      戻り値:
      エスケープ・シーケンスが変換された文字列。
      例外:
      IllegalArgumentException - エスケープ・シーケンスが不正な場合。
      Java言語仕様を参照してください:
      3.10.7 エスケープ・シーケンス
      導入されたバージョン:
      15
    • transform

      public <R> R transform​(Function<? super String,​? extends R> f)
      このメソッドは、関数をthis文字列に適用します。 この関数は単一の文字列引数を期待し、Rの結果を生成します。

      f()からスローされた例外はすべて、コール元に伝播されます。

      型パラメータ:
      R - 結果のクラス
      パラメータ:
      f - 適用への機能インタフェース
      戻り値:
      この文字列に関数を適用した結果
      導入されたバージョン:
      12
      関連項目:
      Function
    • 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 - 書式文字列の書式指示子により参照される引数。 引数が書式指定子よりも多い場合、余分な引数は無視されます。 引数の数は変数で、0(ゼロ)の場合があります。 引数の最大数は、「Java Virtual Machine仕様」で定義されているJava配列の最大サイズによって制限されます。 引数がnullの場合、動作は変換に応じて異なる。
      戻り値:
      フォーマットされた文字列
      例外:
      IllegalFormatException - 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。 考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「詳細」セクションを参照。
      導入されたバージョン:
      1.5
      関連項目:
      Formatter
    • format

      public static String format​(Locale l, String format, Object... args)
      指定されたロケール、書式文字列、および引数を使って、フォーマットされた文字列を返します。
      パラメータ:
      l - 書式設定時に適用するlocale lnullの場合、ローカリゼーションは適用されない。
      format - 書式文字列
      args - 書式文字列の書式指示子により参照される引数。 引数が書式指定子よりも多い場合、余分な引数は無視されます。 引数の数は変数で、0(ゼロ)の場合があります。 引数の最大数は、「Java Virtual Machine仕様」で定義されているJava配列の最大サイズによって制限されます。 引数がnullの場合、動作は変換に応じて異なる。
      戻り値:
      フォーマットされた文字列
      例外:
      IllegalFormatException - 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。 考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「詳細」セクションを参照
      導入されたバージョン:
      1.5
      関連項目:
      Formatter
    • formatted

      public String formatted​(Object... args)
      この文字列を書式文字列として使用し、指定された引数を書式設定します。
      実装要件:
      このメソッドはString.format(this, args)と同等です。
      パラメータ:
      args - この文字列でフォーマット指定子によって参照される引数。
      戻り値:
      フォーマットされた文字列
      導入されたバージョン:
      15
      関連項目:
      format(String,Object...), 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+countdata.lengthよりも大きい場合。
    • copyValueOf

      public static String copyValueOf​(char[] data, int offset, int count)
      valueOf(char[], int, int)と同等です。
      パラメータ:
      data - 文字配列。
      offset - 部分配列の初期オフセット。
      count - 部分配列の長さ。
      戻り値:
      文字配列内の指定された部分配列の文字が格納されているString
      例外:
      IndexOutOfBoundsException - offsetが負の値の場合、countが負の値の場合、あるいはoffset+countdata.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つの文字列stについて、s.intern() == t.intern()trueになるのは、s.equals(t)trueの場合だけです。

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

      戻り値:
      この文字列と同じ内容だが、一意の文字列のプールからのものであることが保証されている文字列。
      Java言語仕様を参照してください:
      3.10.5 文字列リテラル
    • repeat

      public String repeat​(int count)
      この文字列を連結した値がcount回繰り返される文字列を返します。

      この文字列が空であるか、件数がゼロの場合は、空の文字列が返されます。

      パラメータ:
      count - 繰返し回数
      戻り値:
      この文字列で構成された文字列は、この文字列が空であるかカウントがゼロの場合は、count回繰り返されるか空の文字列です。
      例外:
      IllegalArgumentException - countが負の場合。
      導入されたバージョン:
      11
    • describeConstable

      public Optional<String> describeConstable()
      このインスタンス自体の名目記述子を含むOptionalを返します。
      定義:
      インタフェースConstable内のdescribeConstable
      戻り値:
      Stringインスタンスを説明するOptional
      導入されたバージョン:
      12
    • resolveConstantDesc

      public String resolveConstantDesc​(MethodHandles.Lookup lookup)
      このインスタンスをConstantDescとして解決します。その結果がインスタンス自体です。
      定義:
      インタフェースConstantDesc内のresolveConstantDesc
      パラメータ:
      lookup - ignored
      戻り値:
      Stringインスタンス
      導入されたバージョン:
      12