- すべての実装されたインタフェース:
Serializable
,CharSequence
,Comparable<String>
,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のバージョンに応じて、StringBuffer
、StringBuilder
またはjava.lang.invoke.StringConcatFactory
の演算子を実装できます。 文字列変換の実装は、通常、Object
によって定義され、Javaのすべてのクラスによって継承されるメソッドtoString
を介して行われます。 - Java言語仕様を参照してください:
-
15.18.1 文字列連結演算子+
- 導入されたバージョン:
- 1.0
- 関連項目:
-
フィールドのサマリー
修飾子と型フィールド説明static final Comparator
<String> compareToIgnoreCase
と同様にString
オブジェクトを順序付けするComparator。 -
コンストラクタのサマリー
コンストラクタ説明String()
新しく生成されたString
オブジェクトを初期化して、空の文字シーケンスを表すようにします。String
(byte[] bytes) default charset
を使用して指定したバイト配列をデコードすることによって、新しいString
を作成します。String
(byte[] ascii, int hibyte) 非推奨。このメソッドでは、バイトから文字への変換が正しく行われません。String
(byte[] bytes, int offset, int length) default charset
を使用して、指定したバイトのサブ配列をデコードすることによって、新しいString
を構成します。String
(byte[] ascii, int hibyte, int offset, int count) 非推奨。このメソッドでは、バイトから文字への変換が正しく行われません。指定された文字セットを使用して、指定されたバイト部分配列をデコードすることによって、新しいString
を構築します。指定された文字セットを使用して、指定された部分バイト配列を復号化することにより、新しいString
を構築します。指定された文字セットを使用して、指定されたバイト配列をデコードすることにより、新しいString
を構築します。指定された文字セットを使用して、指定されたバイト配列をデコードすることにより、新しいString
を構築します。String
(char[] value) 新しいString
を割り当てて、これが文字配列引数に現在含まれている文字シーケンスを表すようにします。String
(char[] value, int offset, int count) 文字配列引数の部分配列からなる文字を含む新しいString
を割り当てます。String
(int[] codePoints, int offset, int count) Unicodeコード・ポイント配列引数の部分配列からなる文字を含む新しいString
を割り当てます。新しく生成されたString
オブジェクトを初期化して、引数と同じ文字シーケンスを表すようにします。つまり、新しく作成された文字列は引数文字列のコピーになります。String
(StringBuffer buffer) 文字列バッファ引数に現在含まれている文字列を持つ新しい文字列を構築します。String
(StringBuilder builder) 文字列ビルダー引数に現在含まれている文字列を持つ新しい文字列を割り当てます。 -
メソッドのサマリー
修飾子と型メソッド説明char
charAt
(int index) 指定されたインデックスのchar
値を返します。chars()
このシーケンスのchar
値をゼロ拡張したint
を含むストリームを返します。int
codePointAt
(int index) 指定されたインデックス位置の文字(Unicodeコード・ポイント)を返します。int
codePointBefore
(int index) 指定されたインデックスの前の文字(Unicodeコード・ポイント)を返します。int
codePointCount
(int beginIndex, int endIndex) このString
の指定されたテキスト範囲のUnicodeコード・ポイントの数を返します。このシーケンスからコード・ポイント値のストリームを返します。int
2つの文字列を辞書的に比較します。int
大文字と小文字の区別なしで、2つの文字列を辞書的に比較します。指定された文字列をこの文字列の最後に連結します。boolean
この文字列が指定されたchar値のシーケンスを含む場合に限りtrueを返します。boolean
この文字列と指定されたCharSequence
を比較します。boolean
この文字列と指定されたStringBuffer
を比較します。static String
copyValueOf
(char[] data) valueOf(char[])
と同等です。static String
copyValueOf
(char[] data, int offset, int count) このインスタンス自体の名目記述子を含むOptional
を返します。boolean
この文字列が、指定された接尾辞で終るかどうかを判定します。boolean
この文字列と指定されたオブジェクトを比較します。boolean
equalsIgnoreCase
(String anotherString) 大文字と小文字を区別せずに、このString
を別のString
と比較します。static String
指定された書式の文字列と引数を使って、書式付き文字列を返します。static String
指定されたロケール、書式文字列、および引数を使って、フォーマットされた文字列を返します。この文字列を書式文字列として使用し、指定された引数を書式設定します。byte[]
getBytes()
default charset
を使用してこのString
をバイトのシーケンスにエンコードし、結果を新しいバイト配列に格納します。void
getBytes
(int srcBegin, int srcEnd, byte[] dst, int dstBegin) 非推奨。このメソッドでは、文字からバイトへの変換が正しく行われません。byte[]
指定された文字セットを使用してこのString
をバイト・シーケンスにエンコードし、結果を新規バイト配列に格納します。byte[]
指定された文字セットを使用してこのString
をバイト・シーケンスに符号化し、結果を新規バイト配列に格納します。void
getChars
(int srcBegin, int srcEnd, char[] dst, int dstBegin) この文字列から、コピー先の文字配列に文字をコピーします。int
hashCode()
この文字列のハッシュ・コードを返します。indent
(int n) n
の値に基づいてこの文字列の各行のインデントを調整し、行の終了文字を正規化します。int
indexOf
(int ch) この文字列内で、指定された文字が最初に出現する位置のインデックスを返します。int
indexOf
(int ch, int fromIndex) この文字列内で、指定されたインデックスから検索を開始し、指定された文字が最初に出現する位置のインデックスを返します。int
indexOf
(int ch, int beginIndex, int endIndex) beginIndex
で検索を開始し、endIndex
の前に停止して、指定した文字の最初の出現の文字列内の索引を返します。int
この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。int
指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。int
指定されたthis
文字列の索引範囲内で、指定された部分文字列の最初の出現のインデックスを返します。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()
この文字列の長さを戻します。lines()
この文字列から抽出された行のストリームを、行終了記号で区切って返します。boolean
この文字列が、指定された正規表現と一致するかどうかを判定します。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つの文字列領域が等しいかどうかを判定します。repeat
(int count) この文字列を連結した値がcount
回繰り返される文字列を返します。replace
(char oldChar, char newChar) この文字列内にあるすべてのoldChar
をnewChar
に置換した結果生成される文字列を返します。replace
(CharSequence target, CharSequence replacement) リテラル・ターゲット・シーケンスに一致するこの文字列の部分文字列を、指定されたリテラル置換シーケンスに置き換えます。replaceAll
(String regex, String replacement) 指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行します。replaceFirst
(String regex, String replacement) 指定された正規表現に一致する、この文字列の最初の部分文字列に対し、指定された置換を実行します。このインスタンスをConstantDesc
として解決します。その結果がインスタンス自体です。String[]
この文字列を、指定された正規表現に一致する位置で分割します。String[]
この文字列を、指定された正規表現に一致する位置で分割します。String[]
splitWithDelimiters
(String regex, int limit) 指定された正規表現の一致を囲むこの文字列を分割し、文字列と一致する区切り文字の両方を返します。boolean
startsWith
(String prefix) この文字列が、指定された接頭辞で始まるかどうかを判定します。boolean
startsWith
(String prefix, int toffset) この文字列の指定されたインデックス以降の部分文字列が、指定された接頭辞で始まるかどうかを判定します。strip()
値がこの文字列であり、先頭と末尾のすべてのwhite spaceが削除されている文字列を返します。偶然のwhite spaceをあらゆる行の最初と最後から削除して、値がこの文字列である文字列を返します。すべての先行white spaceが削除されて、値がこの文字列である文字列を返します。値がこの文字列で、すべての後続white spaceが削除されている文字列を返します。subSequence
(int beginIndex, int endIndex) このシーケンスのサブシーケンスである文字シーケンスを返します。substring
(int beginIndex) この文字列の部分文字列である文字列を返します。substring
(int beginIndex, int endIndex) この文字列の部分文字列である文字列を返します。char[]
この文字列を新しい文字配列に変換します。デフォルト・ロケールのルールを使って、このString
内のすべての文字を小文字に変換します。toLowerCase
(Locale locale) 指定されたLocale
のルールを使って、このString
内のすべての文字を小文字に変換します。toString()
このオブジェクト(これはすでに文字列です!)デフォルト・ロケールのルールを使って、このString
内のすべての文字を大文字に変換します。toUpperCase
(Locale locale) 指定されたLocale
のルールを使って、このString
内のすべての文字を大文字に変換します。<R> R
このメソッドは、関数をthis
文字列に適用します。文字列リテラルのように変換されたエスケープ・シーケンスを使用して、値がこの文字列の文字列を返します。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
Object
引数の文字列表現を返します。
-
フィールド詳細
-
CASE_INSENSITIVE_ORDER
public static final Comparator<String> CASE_INSENSITIVE_ORDERcompareToIgnoreCase
と同様にString
オブジェクトを順序付けするComparator。 このコンパレータは直列化可能です。このComparatorはロケールを考慮しないので、一部のロケールでは、正しい順序に並べられないことがあります。
Collator
クラスは、ロケール依存の比較を提供します。- 導入されたバージョン:
- 1.2
- 関連項目:
-
-
コンストラクタの詳細
-
String
public String()新しく生成されたString
オブジェクトを初期化して、空の文字シーケンスを表すようにします。 Stringは不変なので、このコンストラクタを使う必要はありません。 -
String
public String(String original) 新しく生成されたString
オブジェクトを初期化して、引数と同じ文字シーケンスを表すようにします。つまり、新しく作成された文字列は引数文字列のコピーになります。 Stringは不変なので、original
の明示的なコピーが必要でないかぎり、このコンストラクタを使う必要はありません。- パラメータ:
original
-AString
-
String
public String(char[] value) 新しいString
を割り当てて、これが文字配列引数に現在含まれている文字シーケンスを表すようにします。 文字配列の内容がコピーされます。コピー後にその文字が変更されても、新しく作成された文字列には影響しません。- パラメータ:
value
- 文字列の初期値
-
String
public String(char[] value, int offset, int count) 文字配列引数の部分配列からなる文字を含む新しいString
を割り当てます。 引数offset
は部分配列の先頭の文字のインデックスであり、引数count
は部分配列の長さを指定します。 部分配列の内容がコピーされます。コピー後に文字配列が変更されても、新しく作成された文字列には影響しません。- パラメータ:
value
- 文字列のソースである配列offset
- 初期オフセットcount
- 長さ- 例外:
IndexOutOfBoundsException
-offset
が負の場合、count
が負の場合、またはoffset
がvalue.length - count
より大きい場合
-
String
public String(int[] codePoints, int offset, int count) Unicodeコード・ポイント配列引数の部分配列からなる文字を含む新しいString
を割り当てます。 引数offset
は部分配列の先頭のコード・ポイントのインデックスであり、引数count
は部分配列の長さを指定します。 部分配列の内容がchar
に変換されます。変換後にint
配列が変更されても、新しく作成された文字列には影響しません。- パラメータ:
codePoints
- Unicodeコード・ポイントのソースである配列offset
- 初期オフセットcount
- 長さ- 例外:
IllegalArgumentException
-codePoints
で無効なUnicodeコード・ポイントが見つかった場合IndexOutOfBoundsException
-offset
が負の場合、count
が負の場合、またはoffset
がcodePoints.length - count
より大きい場合- 導入されたバージョン:
- 1.5
-
String
@Deprecated(since="1.1") public String(byte[] ascii, int hibyte, int offset, int count) 非推奨。このメソッドでは、バイトから文字への変換が正しく行われません。 JDK 1.1では、Charset
、文字セット名、またはdefault charset
を使用するString
コンストラクタを使用することをお薦めします。8ビット整数値配列の部分配列によって構築される新しいString
を割り当てます。引数
offset
は部分配列の先頭のバイトのインデックスであり、引数count
は部分配列の長さを指定します。サブ配列内の各
byte
は、String(byte[],int)
コンストラクタで指定されたchar
に変換されます。- パラメータ:
ascii
- 文字列に変換されるバイトhibyte
- 16ビットの各Unicodeコード単位の上位8ビットoffset
- 初期オフセットcount
- 長さ- 例外:
IndexOutOfBoundsException
-offset
が負の場合、count
が負の場合、またはoffset
がascii.length - count
より大きい場合- 関連項目:
-
String
@Deprecated(since="1.1") public String(byte[] ascii, int hibyte) 非推奨。このメソッドでは、バイトから文字への変換が正しく行われません。 JDK 1.1では、Charset
、文字セット名、またはdefault charset
を使用するString
コンストラクタを使用することをお薦めします。8ビット整数値の配列からなる文字を持つ新しいString
を割り当てます。 作成される文字列の各文字データc は、バイト配列の対応するコンポーネントbから、次のようになります。c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))
- パラメータ:
ascii
- 文字列に変換されるバイトhibyte
- 16ビットの各Unicodeコード単位の上位8ビット- 関連項目:
-
String
public String(byte[] bytes, int offset, int length, String charsetName) throws UnsupportedEncodingException 指定された文字セットを使用して、指定されたバイト部分配列をデコードすることによって、新しいString
を構築します。 新しいString
の長さは文字セットによって変化するため、部分配列長と一致しないことがあります。指定された文字セットで指定されたバイトが無効な場合、このコンストラクタの動作は指定されません。 デコード処理をより強力に制御する必要がある場合、
CharsetDecoder
クラスを使用する必要があります。- パラメータ:
bytes
- 文字列に復号化されるバイトoffset
- 復号化される先頭バイトのインデックスlength
- 復号化するバイト数charsetName
- サポートされているcharsetの名前- 例外:
UnsupportedEncodingException
- 指定された文字セットがサポートされていない場合IndexOutOfBoundsException
-offset
が負の場合、length
が負の場合、またはoffset
がbytes.length - length
より大きい場合- 導入されたバージョン:
- 1.1
-
String
public String(byte[] bytes, int offset, int length, Charset charset) 指定された文字セットを使用して、指定された部分バイト配列を復号化することにより、新しいString
を構築します。 新しいString
の長さは文字セットによって変化するため、部分配列長と一致しないことがあります。このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、この文字セットのデフォルトの置換文字列で置き換えます。 デコード処理をより強力に制御する必要がある場合、
CharsetDecoder
クラスを使用する必要があります。- パラメータ:
bytes
- 文字列に復号化されるバイトoffset
- 復号化される先頭バイトのインデックスlength
- 復号化するバイト数charset
-bytes
の復号化に使用される文字セット- 例外:
IndexOutOfBoundsException
-offset
が負の場合、length
が負の場合、またはoffset
がbytes.length - length
より大きい場合- 導入されたバージョン:
- 1.6
-
String
public String(byte[] bytes, String charsetName) throws UnsupportedEncodingException 指定された文字セットを使用して、指定されたバイト配列をデコードすることにより、新しいString
を構築します。 新しいString
の長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。指定された文字セットで指定されたバイトが無効な場合、このコンストラクタの動作は指定されません。 デコード処理をより強力に制御する必要がある場合、
CharsetDecoder
クラスを使用する必要があります。- パラメータ:
bytes
- 文字列に復号化されるバイトcharsetName
- サポートされているcharsetの名前- 例外:
UnsupportedEncodingException
- 指定された文字セットがサポートされていない場合- 導入されたバージョン:
- 1.1
-
String
public String(byte[] bytes, Charset charset) 指定された文字セットを使用して、指定されたバイト配列をデコードすることにより、新しいString
を構築します。 新しいString
の長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、この文字セットのデフォルトの置換文字列で置き換えます。 デコード処理をより強力に制御する必要がある場合、
CharsetDecoder
クラスを使用する必要があります。- パラメータ:
bytes
- 文字列に復号化されるバイトcharset
-bytes
の復号化に使用される文字セット- 導入されたバージョン:
- 1.6
-
String
public String(byte[] bytes, int offset, int length) default charset
を使用して、指定したバイトのサブ配列をデコードすることによって、新しいString
を構成します。 新しいString
の長さは文字セットによって変化するため、部分配列長と一致しないことがあります。指定されたバイトがデフォルトの文字セットで無効な場合、このコンストラクタの動作は指定されません。 デコード処理をより強力に制御する必要がある場合、
CharsetDecoder
クラスを使用する必要があります。- パラメータ:
bytes
- 文字列に復号化されるバイトoffset
- 復号化される先頭バイトのインデックスlength
- 復号化するバイト数- 例外:
IndexOutOfBoundsException
-offset
が負の場合、length
が負の場合、またはoffset
がbytes.length - length
より大きい場合- 導入されたバージョン:
- 1.1
-
String
public String(byte[] bytes) default charset
を使用して指定したバイト配列をデコードすることによって、新しいString
を作成します。 新しいString
の長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。指定されたバイトがデフォルトの文字セットで無効な場合、このコンストラクタの動作は指定されません。 デコード処理をより強力に制御する必要がある場合、
CharsetDecoder
クラスを使用する必要があります。- パラメータ:
bytes
- 文字列に復号化されるバイト- 導入されたバージョン:
- 1.1
-
String
public String(StringBuffer buffer) 文字列バッファ引数に現在含まれている文字列を持つ新しい文字列を構築します。 文字列バッファの内容がコピーされます。コピー後に文字列バッファが変更されても、新しく作成された文字列には影響しません。- パラメータ:
buffer
-AStringBuffer
-
String
public String(StringBuilder builder) 文字列ビルダー引数に現在含まれている文字列を持つ新しい文字列を割り当てます。 文字列ビルダーの内容がコピーされます。コピー後に文字列ビルダーが変更されても、新しく作成された文字列には影響しません。このコンストラクタの提供目的は、
StringBuilder
に移行しやすくすることです。toString
メソッドを使って文字列ビルダーから文字列を取得することは、処理が高速になるので一般的に推奨されています。- パラメータ:
builder
-AStringBuilder
- 導入されたバージョン:
- 1.5
-
-
メソッドの詳細
-
length
public int length()この文字列の長さを戻します。 長さは文字列内のUnicodeコード単位の数に等しくなります。- 定義:
length
、インタフェースCharSequence
- 戻り値:
- このオブジェクトによって表される文字シーケンスの長さ。
-
isEmpty
public boolean isEmpty()length()
が0
の場合にのみ、true
を返します。- 定義:
- インタフェース
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 - 1
のchar
値が、ペアになっていない下位サロゲートであるか、または上位サロゲートである場合、そのサロゲート値が返されます。- パラメータ:
index
- 返すべきコード・ポイントの直後のインデックス- 戻り値:
- 指定されたインデックスの前にあるUnicodeコード・ポイント値。
- 例外:
IndexOutOfBoundsException
-index
引数が1未満であるか、またはこの文字列の長さより大きい値の場合。- 導入されたバージョン:
- 1.5
-
codePointCount
public int codePointCount(int beginIndex, int endIndex) このString
の指定されたテキスト範囲のUnicodeコード・ポイントの数を返します。 テキスト範囲は、指定されたbeginIndex
からインデックスendIndex - 1
の位置のchar
までです。 したがって、テキスト範囲の長さ(char
数)は、endIndex-beginIndex
になります。 テキスト範囲内でペアになっていないサロゲートは、それぞれ1つのコード・ポイントとして数えられます。- パラメータ:
beginIndex
- テキスト範囲内の最初のchar
へのインデックス。endIndex
- テキスト範囲内の最後のchar
の直後のインデックス。- 戻り値:
- 指定されたテキスト範囲内のUnicodeコード・ポイントの数
- 例外:
IndexOutOfBoundsException
-beginIndex
が負であるか、endIndex
がこのString
の長さより大きいか、あるいはbeginIndex
がendIndex
より大きい場合。- 導入されたバージョン:
- 1.5
-
offsetByCodePoints
public int offsetByCodePoints(int index, int codePointOffset) このString
内で、指定されたindex
からcodePointOffset
コード・ポイント分だけオフセットされた位置のインデックスを返します。index
とcodePointOffset
で指定されるテキスト範囲内でペアになっていないサロゲートは、それぞれ1つのコード・ポイントとして数えられます。- パラメータ:
index
- オフセットされるインデックスcodePointOffset
- オフセット(コード・ポイント数)- 戻り値:
- この
String
内でのインデックス - 例外:
IndexOutOfBoundsException
-index
がこのString
の長さより負または大きい場合、またはcodePointOffset
が正で、index
で始まる部分文字列がcodePointOffset
コード・ポイントより少ない場合、またはcodePointOffset
が負で、index
より前の部分文字列がcodePointOffset
コード・ポイントの絶対値より少ない場合。- 導入されたバージョン:
- 1.5
-
getChars
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) この文字列から、コピー先の文字配列に文字をコピーします。コピーされる最初の文字のインデックスは
srcBegin
、コピーされる最後の文字のインデックスはsrcEnd-1
です。したがって、コピーされる文字数はsrcEnd-srcBegin
となります。 文字はdst
の部分配列にコピーされます。始点のインデックスはdstBegin
で、終点のインデックスは次のようになります。dstBegin + (srcEnd-srcBegin) - 1
- パラメータ:
srcBegin
- コピー対象文字列内の最初の文字のインデックス。srcEnd
- コピー対象文字列内の最後の文字のあとのインデックス。dst
- 転送先配列。dstBegin
- コピー先の配列内での開始座標。- 例外:
IndexOutOfBoundsException
- 次のどれかに当てはまる場合。srcBegin
が負であるsrcBegin
が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では、default charset
を使用する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()default charset
を使用してこのString
をバイトのシーケンスにエンコードし、結果を新しいバイト配列に格納します。デフォルトの文字セットでこの文字列をエンコード化できない場合、このメソッドの動作は指定されません。 エンコード処理をより強力に制御する必要がある場合は、
CharsetEncoder
クラスを使用してください。- 戻り値:
- 結果のバイト配列
- 導入されたバージョン:
- 1.1
-
equals
public boolean equals(Object anObject) この文字列と指定されたオブジェクトを比較します。 引数がnull
ではなく、このオブジェクトと同じ文字シーケンスを表すString
オブジェクトである場合にだけ、結果はtrue
になります。より詳細な文字列の比較については、
Collator
を参照してください。 -
contentEquals
public boolean contentEquals(StringBuffer sb) この文字列と指定されたStringBuffer
を比較します。 結果がtrue
になるのは、このString
が指定されたStringBuffer
と同じ文字シーケンスを表す場合だけです。 このメソッドは、StringBuffer
との同期をとります。より詳細な文字列の比較については、
Collator
を参照してください。- パラメータ:
sb
- このString
と比較するStringBuffer
- 戻り値:
- この
String
が、指定されたStringBuffer
と同じ文字シーケンスを表す場合はtrue
。そうでない場合はfalse
- 導入されたバージョン:
- 1.4
-
contentEquals
public boolean contentEquals(CharSequence cs) この文字列と指定されたCharSequence
を比較します。 このString
が、指定されたシーケンスと同じ文字値シーケンスを表す場合にだけ、結果がtrue
になります。CharSequence
がStringBuffer
である場合、このメソッドはそれとの同期をとるので注意してください。より詳細な文字列の比較については、
Collator
を参照してください。- パラメータ:
cs
- このString
と比較されるシーケンス- 戻り値:
- この
String
が、指定されたシーケンスと同じ文字値シーケンスを表す場合はtrue
。そうでない場合はfalse
- 導入されたバージョン:
- 1.5
-
equalsIgnoreCase
public boolean equalsIgnoreCase(String anotherString) 大文字と小文字を区別せずに、このString
を別のString
と比較します。 長さが同じで、2つの文字列内の対応するUnicodeコード・ポイントが大/小文字を区別せずに等しい場合、2つの文字列は大/小文字を区別せずに等しいとみなされます。次のいずれかが当てはまる場合、2つのUnicodeコード・ポイントは同じであるとみなされ、大文字小文字は区別されません:
- 2つのUnicodeコード・ポイントは同じ(
==
演算子による比較)です - 各Unicodeコード・ポイントで
Character.toLowerCase(Character.toUpperCase(int))
をコールすると、同じ結果になります
このメソッドではロケールが考慮されず、特定のロケールで不十分な結果になることに注意してください。
Collator
クラスは、ロケール依存の比較を提供します。- パラメータ:
anotherString
- このString
と比較するString
- 戻り値:
- 引数が
null
でなく、同等のString
(大文字と小文字の区別なし)を表す場合はtrue
、それ以外の場合はfalse
- 関連項目:
- 2つのUnicodeコード・ポイントは同じ(
-
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つの文字列を辞書的に比較します。 このメソッドは、Unicodeコード・ポイントごとにCharacter.toLowerCase(Character.toUpperCase(int))
をコールすることで大/小文字の違いが解消された、大/小文字が区別されたバージョンの文字列を使用してcompareTo
をコールする場合の符号を持つ整数を戻します。このメソッドはロケールを考慮しないので、一部のロケールでは、正しい順序に並べられないことがあります。
Collator
クラスは、ロケール依存の比較を提供します。- パラメータ:
str
- 比較対象のString
。- 戻り値:
- 大文字と小文字の区別なしで、指定されたStringがこのStringより大きい場合は負の整数、同じ場合は0、小さい場合は正の整数。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
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
の部分文字列と比較されます。 これらの部分文字列が同じUnicodeコード・ポイント・シーケンスを表す場合、結果はtrue
になります。ignoreCase
がtrueの場合のみ、大文字と小文字は区別されません。 順序tsequence
とosequence
が比較されます。ここで、tsequence
はthis.substring(toffset, toffset + len).codePoints()
をコールした場合と同様に生成される順序で、osequence
はother.substring(ooffset, ooffset + len).codePoints()
をコールした場合と同様に生成される順序です。 結果がtrue
になるのは、次の条件がすべて満たされている場合のみです:toffset
が負ではありません。ooffset
が負ではありません。toffset+len
がこのString
オブジェクトの長さ以下です。ooffset+len
が他の引数の長さ以下です。ignoreCase
がfalse
の場合、対応するUnicodeコード・ポイントのすべてのペアは同じ整数値です。ignoreCase
がtrue
の場合、Unicodeコード・ポイントのすべてのペアのCharacter.toLowerCase(
Character.toUpperCase(int)
)
は同じ整数値になります。
このメソッドではロケールが考慮されず、
ignoreCase
がtrue
の場合、特定のロケールで不十分な結果になることに注意してください。Collator
クラスは、ロケール依存の比較を提供します。- パラメータ:
ignoreCase
-true
の場合、文字の比較の際に大文字小文字は区別されない。toffset
- この文字列内の部分領域の開始オフセット。other
- 文字列引数。ooffset
- 文字列引数内の部分領域の開始オフセット。len
- 比較する(Unicodeコード単位 - 16bitchar
値)の文字数。- 戻り値:
- この文字列の指定された部分領域が文字列引数の指定された部分領域と一致する場合は
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です。 -
indexOf
public int indexOf(int ch) この文字列内で、指定された文字が最初に出現する位置のインデックスを返します。 値ch
を持つ文字がこのString
オブジェクトによって表される文字シーケンス内にある場合、最初に出現する位置のインデックス(Unicodeコード単位)が返されます。ch
の値が0から0xFFFFの範囲にある場合、次の式がtrueとなるような最小値kが返されます。
がtrueであることで証明されます。this.charAt(k) == ch
ch
がほかの値の場合、次の式がtrueとなるような最小値kです。
がtrueであることで証明されます。 該当する文字がこの文字列内にない場合は、this.codePointAt(k) == ch
-1
が返されます。- パラメータ:
ch
- 文字(Unicodeコード・ポイント)。- 戻り値:
- このオブジェクトによって表される文字シーケンス内で、指定された文字が最初に出現する位置のインデックス。文字がない場合は
-1
。
-
indexOf
public int indexOf(int ch, int fromIndex) この文字列内で、指定されたインデックスから検索を開始し、指定された文字が最初に出現する位置のインデックスを返します。値
ch
を持つ文字が、このString
オブジェクトによって表される文字シーケンスのfromIndex
より大きいか同じインデックス位置にある場合、該当する最初のインデックスが返されます。ch
の値が0から0xFFFFの範囲にある場合、次の式がtrueとなるような最小値kが返されます。
がtrueであることで証明されます。(this.charAt(k) == ch)
&&
(k >= fromIndex)ch
がほかの値の場合、次の式がtrueとなるような最小値kです。
がtrueであることで証明されます。 いずれの場合も、そのような文字がこの文字列内の位置(this.codePointAt(k) == ch)
&&
(k >= fromIndex)fromIndex
かそれより後に存在しない場合は、-1
が返されます。fromIndex
の値に対して制約はない。 負の値の場合は、ゼロの場合と同じ結果になります。この文字列全体が検索されます。 この文字列の長さより大きい場合は、この文字列の長さに等しい場合と同じ結果になり、-1
が返されます。すべてのインデックスは、
char
値(Unicodeコード単位)で指定されます。- APIのノート:
- たとえば、
substring(int)
とは異なり、fromIndex
が有効な範囲外の場合、このメソッドは例外をスローしません。 かわりに、fromIndex
が文字列の長さよりも大きい場合は -1を返します。 この結果は単独で、文字列にch
の正規の欠落と区別できません。 より厳密な動作が必要な場合は、かわりにindexOf(int, int, int)
を考慮する必要があります。 たとえば、String
s
では、fromIndex
が文字列の長さよりも大きい場合、または負の場合、s.indexOf(ch, fromIndex, s.length())
がスローされます。 - パラメータ:
ch
- 文字(Unicodeコード・ポイント)。fromIndex
- 検索開始位置のインデックス。- 戻り値:
- このオブジェクトによって表される文字列で、指定された文字が
fromIndex
と同じかこれより大きいインデックス位置にある場合は、最初に出現した位置のインデックス。文字がない場合は-1
。
-
indexOf
public int indexOf(int ch, int beginIndex, int endIndex) beginIndex
で検索を開始し、endIndex
の前に停止して、指定した文字の最初の出現の文字列内の索引を返します。値が
ch
の文字が、このString
オブジェクトによって表される文字シーケンスで、beginIndex
より小さくendIndex
より小さい索引で発生した場合は、そのような最初の出現のインデックスが返されます。ch
の値が0から0xFFFFの範囲にある場合、次の式がtrueとなるような最小値kが返されます。
がtrueであることで証明されます。(this.charAt(k) == ch) && (beginIndex <= k < endIndex)
ch
がほかの値の場合、次の式がtrueとなるような最小値kです。
がtrueであることで証明されます。 いずれの場合も、位置(this.codePointAt(k) == ch) && (beginIndex <= k < endIndex)
beginIndex
以降および位置endIndex
の前にあるこの文字列にそのような文字が出現しない場合、-1
が返されます。すべてのインデックスは、
char
値(Unicodeコード単位)で指定されます。- パラメータ:
ch
- 文字(Unicodeコード・ポイント)。beginIndex
- (included)から検索を開始する索引。endIndex
- (除外)で検索を停止する索引。- 戻り値:
- このオブジェクトによって表される文字シーケンス内で最初に出現する文字のインデックス。
beginIndex
以上、endIndex
未満、または文字が発生しない場合は-1
です。 - 例外:
StringIndexOutOfBoundsException
-beginIndex
が負の場合、またはendIndex
がこのString
オブジェクトの長さよりも大きい場合、またはbeginIndex
がこのendIndex
より大きい場合。- 導入されたバージョン:
- 21
-
lastIndexOf
public int lastIndexOf(int ch) この文字列内で、指定された文字が最後に出現する位置のインデックスを返します。ch
値が0から0xFFFFの範囲にある場合、返されるインデックス(Unicodeコード単位)は、次の式に該当する最大値kです。
がtrueであることで証明されます。this.charAt(k) == ch
ch
がほかの値の場合、次の式がtrueとなるような最大値kです。
がtrueであることで証明されます。 該当する文字がこの文字列内にない場合は、this.codePointAt(k) == ch
-1
が返されます。String
の検索は最後の文字から開始され、先頭方向に行われます。- パラメータ:
ch
- 文字(Unicodeコード・ポイント)。- 戻り値:
- このオブジェクトによって表される文字シーケンス内で、指定された文字が最後に出現する位置のインデックス。文字がない場合は
-1
。
-
lastIndexOf
public int lastIndexOf(int ch, int fromIndex) この文字列内で、指定された文字が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先頭方向に行われる)。ch
値が0から0xFFFFの範囲にある場合、返されるインデックスは、次の式に該当する最大値kです。
がtrueであることで証明されます。(this.charAt(k) == ch)
&&
(k <= fromIndex)ch
がほかの値の場合、次の式がtrueとなるような最大値kです。
がtrueであることで証明されます。 いずれの場合も、そのような文字がこの文字列内の位置(this.codePointAt(k) == ch)
&&
(k <= fromIndex)fromIndex
かそれより前に存在しない場合は、-1
が返されます。すべてのインデックスは、
char
値(Unicodeコード単位)で指定されます。- パラメータ:
ch
- 文字(Unicodeコード・ポイント)。fromIndex
- 検索開始位置のインデックス。fromIndex
の値に対して制約はない。 この文字列の長さと同じかこれより大きい場合は、この文字列の長さより1小さい場合と同じ結果になり、この文字列全体が検索される。 負の値の場合は、-1の場合と同じ結果になり、-1が返される。- 戻り値:
- このオブジェクトによって表される文字シーケンス内で、指定された文字が
fromIndex
と同じかこれより小さいインデックス位置に最後に出現する位置のインデックス。指定された文字がその位置より前にない場合は-1
。
-
indexOf
public int indexOf(String str) この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。返される索引は、次の最小値
k
です:
そのようなthis.startsWith(str, k)
k
の値が存在しない場合、-1
が返されます。- パラメータ:
str
- 検索対象の部分文字列。- 戻り値:
- 指定された部分文字列が最初に出現する位置のインデックス。そのような出現箇所がない場合は
-1
。
-
indexOf
public int indexOf(String str, int fromIndex) 指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。返される索引は、次の最小値
k
です:
そのようなk >= Math.min(fromIndex, this.length()) && this.startsWith(str, k)
k
の値が存在しない場合、-1
が返されます。- APIのノート:
- たとえば、
substring(int)
とは異なり、fromIndex
が有効な範囲外の場合、このメソッドは例外をスローしません。 かわりに、fromIndex
が文字列の長さよりも大きい場合は -1を返します。 この結果は単独で、文字列にstr
の正規の欠落と区別できません。 より厳密な動作が必要な場合は、かわりにindexOf(String, int, int)
を考慮する必要があります。String
s
および空でないstr
では、たとえば、fromIndex
が文字列の長さよりも大きいか、負の場合、s.indexOf(str, fromIndex, s.length())
はスローされます。 - パラメータ:
str
- 検索対象の部分文字列。fromIndex
-検索開始位置のインデックス。- 戻り値:
- 指定されたインデックス以降で、指定された部分文字列が最初に出現する位置のインデックス。そのような出現箇所がない場合は
-1
。
-
indexOf
public int indexOf(String str, int beginIndex, int endIndex) 指定されたthis
文字列の索引範囲内で、指定された部分文字列の最初の出現のインデックスを返します。このメソッドは、呼出しの1つと同じ結果を返します
s.substring(beginIndex, endIndex).indexOf(str) + beginIndex
indexOf(String)
によって返される索引が負でない場合は-1を返し、それ以外の場合は-1を返します。 (ただし、部分文字列はインスタンス化されません。)- パラメータ:
str
- 検索対象の部分文字列。beginIndex
- (included)から検索を開始する索引。endIndex
- (除外)で検索を停止する索引。- 戻り値:
- 指定された索引範囲内で指定された部分文字列の最初の出現のインデックス。そのような出現がない場合は
-1
。 - 例外:
StringIndexOutOfBoundsException
-beginIndex
が負の場合、またはendIndex
がこのString
オブジェクトの長さよりも大きい場合、またはbeginIndex
がこのendIndex
より大きい場合。- 導入されたバージョン:
- 21
-
lastIndexOf
public int lastIndexOf(String str) この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。 空の文字列「」が最後に出現する位置は、this.length()
と見なされます。返される索引は、次の最大値
k
です:
そのようなthis.startsWith(str, k)
k
の値が存在しない場合、-1
が返されます。- パラメータ:
str
- 検索対象の部分文字列。- 戻り値:
- 指定された部分文字列が最後に出現する位置のインデックス。そのような出現箇所がない場合は
-1
。
-
lastIndexOf
public int lastIndexOf(String str, int fromIndex) この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します(検索は指定されたインデックスから開始され、先頭方向に行われる)。返される索引は、次の最大値
k
です:
そのようなk <= Math.min(fromIndex, this.length()) && this.startsWith(str, k)
k
の値が存在しない場合、-1
が返されます。- パラメータ:
str
- 検索対象の部分文字列。fromIndex
- 検索開始位置のインデックス。- 戻り値:
- 指定された部分文字列が最後に出現する位置のインデックス(指定されたインデックスから逆方向に検索を行う)。そのような出現箇所がない場合は
-1
。
-
substring
public String substring(int beginIndex) この文字列の部分文字列である文字列を返します。 部分文字列は指定されたインデックスで始まり、この文字列の最後までになります。例
"unhappy".substring(2) returns "happy" "Harbison".substring(3) returns "bison" "emptiness".substring(9) returns "" (an empty string)
- パラメータ:
beginIndex
- 開始インデックス(この値を含む)。- 戻り値:
- 指定された部分文字列。
- 例外:
IndexOutOfBoundsException
-beginIndex
が負の値の場合、あるいはこのString
オブジェクトの長さより大きい場合。
-
substring
public String substring(int beginIndex, int endIndex) この文字列の部分文字列である文字列を返します。 部分文字列は、指定されたbeginIndex
から始まり、インデックスendIndex - 1
にある文字までです。 したがって、部分文字列の長さはendIndex-beginIndex
になります。例
"hamburger".substring(4, 8) returns "urge" "smiles".substring(1, 5) returns "mile"
- パラメータ:
beginIndex
- 開始インデックス(この値を含む)。endIndex
- 終了インデックス(この値を含まない)。- 戻り値:
- 指定された部分文字列。
- 例外:
IndexOutOfBoundsException
-beginIndex
が負であるか、endIndex
がこのString
オブジェクトの長さより大きいか、あるいはbeginIndex
がendIndex
より大きい場合。
-
subSequence
public CharSequence subSequence(int beginIndex, int endIndex) このシーケンスのサブシーケンスである文字シーケンスを返します。次のフォームのメソッド呼出しは、
次の呼び出しと正確に同じ動作になります。str.subSequence(begin, end)
str.substring(begin, end)
- 定義:
subSequence
、インタフェースCharSequence
- APIのノート:
- このメソッドが定義されたのは、
String
クラスがCharSequence
インタフェースを実装できるようにするためです。 - パラメータ:
beginIndex
- 開始インデックス(この値を含む)。endIndex
- 終了インデックス(この値を含まない)。- 戻り値:
- 指定されたサブシーケンス。
- 例外:
IndexOutOfBoundsException
-beginIndex
またはendIndex
が負の場合、endIndex
がlength()
より大きい場合、またはbeginIndex
がendIndex
より大きい場合- 導入されたバージョン:
- 1.4
-
concat
指定された文字列をこの文字列の最後に連結します。引数文字列の長さが
0
の場合は、このString
オブジェクトが返されます。 それ以外の場合は、このString
オブジェクトで表される文字列と引数文字列で表される文字列とを連結したものを表すString
オブジェクトが返されます。例
"cares".concat("s") returns "caress" "to".concat("get").concat("her") returns "together"
- パラメータ:
str
- このString
の最後に連結されるString
。- 戻り値:
- このオブジェクトの文字列の後に文字列引数で表される文字を連結したものを表す文字列。
-
replace
public String replace(char oldChar, char newChar) この文字列内にあるすべてのoldChar
をnewChar
に置換した結果生成される文字列を返します。文字
oldChar
がこのString
オブジェクトによって表される文字列内にない場合は、このString
オブジェクトへの参照が返されます。 それ以外の場合は、このString
オブジェクトで表される文字列と同じ文字列を表すString
オブジェクトが返されます。ただし、文字列内のoldChar
はすべてnewChar
に置換されます。例
"mesquite in your cellar".replace('e', 'o') returns "mosquito in your collar" "the war of baronets".replace('r', 'y') returns "the way of bayonets" "sparring with a purple porpoise".replace('p', 't') returns "starring with a turtle tortoise" "JonL".replace('q', 'x') returns "JonL" (no change)
- パラメータ:
oldChar
- 以前の文字。newChar
- 新しい文字。- 戻り値:
- この文字列内のすべての
oldChar
をnewChar
に置換することによって生成された文字列。
-
matches
public boolean matches(String regex) この文字列が、指定された正規表現と一致するかどうかを判定します。このフォームのメソッド呼び出しstr
.matches(
regex)
では、次の式と正確に同じ結果が得られます。Pattern
.matches(regex, str)
- パラメータ:
regex
- この文字列との一致を判定する正規表現- 戻り値:
- この文字列が指定された正規表現と一致する場合にだけ、
true
が返される - 例外:
PatternSyntaxException
- 正規表現の構文が無効な場合- 導入されたバージョン:
- 1.4
- 関連項目:
-
contains
public boolean contains(CharSequence s) この文字列が指定されたchar値のシーケンスを含む場合に限りtrueを返します。- パラメータ:
s
- 検索するシーケンス- 戻り値:
- この文字列が
s
を含む場合はtrue。そうでない場合はfalse - 導入されたバージョン:
- 1.5
-
replaceFirst
指定された正規表現に一致する、この文字列の最初の部分文字列に対し、指定された置換を実行します。このフォームのメソッド呼び出し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
- 関連項目:
-
replaceAll
指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行します。このフォームのメソッド呼び出しstr
.replaceAll(
regex,
repl)
では、次の式と正確に同じ結果が得られます。Pattern
.compile
(regex).matcher
(str).replaceAll
(repl)置換文字列内でバックスラッシュ(
\
)とドル記号($
)を使用すると、それをリテラル置換文字列として処理した場合とは結果が異なることがあります。Matcher.replaceAll
を参照してください。 必要に応じて、Matcher.quoteReplacement(java.lang.String)
を使用して、これらの文字に特別な意味を持たせないようにしてください。- パラメータ:
regex
- この文字列との一致を判定する正規表現replacement
- 一致するものそれぞれに置き換えられる文字列- 戻り値:
- 結果となる
String
- 例外:
PatternSyntaxException
- 正規表現の構文が無効な場合- 導入されたバージョン:
- 1.4
- 関連項目:
-
replace
public String replace(CharSequence target, CharSequence replacement) リテラル・ターゲット・シーケンスに一致するこの文字列の部分文字列を、指定されたリテラル置換シーケンスに置き換えます。 置換は、文字列の先頭から始まり終端まで進みます。たとえば、文字列「aaa」の「aa」を「b」に置換すると、結果は「ab」ではなく、「ba」です。- パラメータ:
target
- 置換されるchar値のシーケンスreplacement
- char値の置換シーケンス- 戻り値:
- 結果として得られる文字列
- 導入されたバージョン:
- 1.5
-
split
この文字列を、指定された正規表現に一致する位置で分割します。この文字列の各部分文字列を含むメソッドにより返される配列は、指定された式に一致する別の部分文字列、またはその文字列の最後で終了します。 配列内の部分文字列の順序は、この文字列内で出現する順序になります。 入力されたどの部分とも式が一致しない場合、配列は1つの要素(つまり、この文字列)だけを保持します。
この文字列の先頭に、正の幅のマッチがある場合、結果の配列の先頭に、空の先頭部分文字列が含まれます。 先頭のゼロの幅の一致では、そのような空の先頭の部分文字列は生成されません。
limit
パラメータは、このパターンの適用回数を制御するため、結果となる配列の長さに影響を及ぼします。limitが正の場合、パターンは最大limit-1回適用され、配列の長さがlimitを超えることはなく、最後に一致したデリミタを超えるすべての入力が配列の最後のエントリに含まれます。
limitがゼロの場合、パターンは可能なかぎり何度も適用され、配列には任意の長さを指定でき、後続の空の文字列は破棄されます。
limitが負の場合、パターンは可能なかぎり適用され、配列の長さは任意になります。
たとえば、次のパラメータが指定された場合の、文字列
"boo:and:foo"
の結果を示します。正規表現 制限 Result : 2 { "boo", "and:foo" }
5 { "boo", "and", "foo" }
-2 { "boo", "and", "foo" }
o 5 { "b", "", ":and:f", "", "" }
-2 { "b", "", ":and:f", "", "" }
0 { "b", "", ":and:f" }
このフォームのメソッド呼び出しstr.
split(
regex,
n)
では、次の式と同じ結果が得られます。Pattern
.compile
(regex).split
(str, n)- パラメータ:
regex
- 正規表現の区切りlimit
- 結果のしきい値(上記を参照)- 戻り値:
- この文字列を指定された正規表現に一致する位置で分割して計算された文字列の配列
- 例外:
PatternSyntaxException
- 正規表現の構文が無効な場合- 導入されたバージョン:
- 1.4
- 関連項目:
-
splitWithDelimiters
指定された正規表現の一致を囲むこの文字列を分割し、文字列と一致する区切り文字の両方を返します。この文字列の各部分文字列を含むメソッドにより返される配列は、指定された式に一致する別の部分文字列、またはその文字列の最後で終了します。 各部分文字列の直後に、指定された式と一致する部分列(デリミタ)が続き、最後の部分文字列を「除き」、その後に何も続かない。 配列内の部分文字列と区切り文字は、入力での出現順序になります。 入力されたどの部分とも式が一致しない場合、配列は1つの要素(つまり、この文字列)だけを保持します。
この文字列の先頭に、正の幅のマッチがある場合、結果の配列の先頭に、空の先頭部分文字列が含まれます。 最初にゼロ幅が一致しても、そのような空の先頭部分文字列や空の区切り文字は生成されません。
limit
パラメータは、このパターンの適用回数を制御するため、結果となる配列の長さに影響を及ぼします。- limitが正の場合、パターンは最大limit - 1回適用され、 配列の長さは2×limit - 1より大きくならず、配列の最後のエントリには、最後に一致したデリミタを超えるすべての入力が含まれます。
- limitがゼロの場合、パターンは可能なかぎり何度も適用され、配列には任意の長さを指定でき、後続の空の文字列は破棄されます。
- limitが負の場合、パターンは可能なかぎり適用され、配列の長さは任意になります。
たとえば、入力
"boo:::and::foo"
は、次のパラメータを使用して結果を生成します:正規表現 制限 Result :+ 2 { "boo", ":::", "and::foo" }
5 { "boo", ":::", "and", "::", "foo" }
-1 { "boo", ":::", "and", "::", "foo" }
o 5 { "b", "o", "", "o", ":::and::f", "o", "", "o", "" }
-1 { "b", "o", "", "o", ":::and::f", "o", "", "o", "" }
0 { "b", "o", "", "o", ":::and::f", "o", "", "o" }
- APIのノート:
- str.
splitWithDelimiters(
regex,
n)
という形式のこのメソッドを呼び出すと、式と同じ結果になりますPattern
.compile
(regex).splitWithDelimiters
(str, n) - パラメータ:
regex
- 正規表現の区切りlimit
- 結果のしきい値(上記を参照)- 戻り値:
- この文字列を指定された正規表現の一致を分割して計算された文字列の配列、置換部分文字列および一致デリミタ
- 導入されたバージョン:
- 21
-
split
この文字列を、指定された正規表現に一致する位置で分割します。このメソッドの動作は、2つの引数を取る
split
メソッドを、指定された式および制限引数ゼロを指定して呼び出した場合と同じになります。 つまり、結果として得られる配列には後続の空の文字列は含まれません。たとえば、次の式が指定された場合の、文字列
"boo:and:foo"
の結果を示します。正規表現 Result : { "boo", "and", "foo" }
o { "b", "", ":and:f" }
- パラメータ:
regex
- 正規表現の区切り- 戻り値:
- この文字列を指定された正規表現に一致する位置で分割して計算された文字列の配列
- 例外:
PatternSyntaxException
- 正規表現の構文が無効な場合- 導入されたバージョン:
- 1.4
- 関連項目:
-
join
public static String join(CharSequence delimiter, CharSequence... elements) 指定されたdelimiter
のコピーを使用して結合されたCharSequence要素
のコピーからなる新しいStringを返します。たとえば、
要素がnullの場合は、String message = String.join("-", "Java", "is", "cool"); // message returned is: "Java-is-cool"
"null"
が追加されることに注意してください。- パラメータ:
delimiter
- 各要素を区切る区切り文字elements
- 結合する要素。- 戻り値:
delimiter
で区切られたelements
からなる新しいString
- 例外:
NullPointerException
-delimiter
またはelements
がnull
である場合- 導入されたバージョン:
- 1.8
- 関連項目:
-
join
public static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements) 指定されたdelimiter
のコピーを使用して結合されたCharSequence要素
のコピーからなる新しいString
を返します。たとえば、
個々の要素がList<String> strings = List.of("Java", "is", "cool"); String message = String.join(" ", strings); // message returned is: "Java is cool" Set<String> strings = new LinkedHashSet<>(List.of("Java", "is", "very", "cool")); String message = String.join("-", strings); // message returned is: "Java-is-very-cool"
null
の場合は、"null"
が追加されることに注意してください。- パラメータ:
delimiter
- 結果となるString
内のelements
のそれぞれを区切るために使用される文字シーケンスelements
-elements
が結合されるIterable
。- 戻り値:
elements
引数からなる新しいString
- 例外:
NullPointerException
-delimiter
またはelements
がnull
である場合- 導入されたバージョン:
- 1.8
- 関連項目:
-
toLowerCase
指定された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
public String toLowerCase()デフォルト・ロケールのルールを使って、このString
内のすべての文字を小文字に変換します。 このメソッドはtoLowerCase(Locale.getDefault())
と同等です。- APIのノート:
- このメソッドはロケールに依存するため、ロケールを個別に解釈することを意図した文字列に使用すると、予期しない結果が発生する可能性があります。 例として、プログラミング言語識別子、プロトコル・キー、HTMLタグがあります。 たとえば、トルコ語ロケールの
"TITLE".toLowerCase()
は"t\u0131tle"
を返します。ここで、「\u0131」は点のないラテン小文字のIの文字です。 ロケールに依存しない文字列の正しい結果を取得するには、toLowerCase(Locale.ROOT)
を使用します。 - 戻り値:
- 小文字に変換された
String
。 - 関連項目:
-
toUpperCase
指定されたLocale
のルールを使って、このString
内のすべての文字を大文字に変換します。 ケース・マッピングは、Character
クラスで指定されたUnicode仕様バージョンに基づいています。 ケース・マッピングは常に1:1文字マッピングではないため、結果のString
とこのString
の長さが異なる場合があります。次の表に、ロケール依存および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
public String toUpperCase()デフォルト・ロケールのルールを使って、このString
内のすべての文字を大文字に変換します。 このメソッドは、toUpperCase(Locale.getDefault())
と同等です。- APIのノート:
- このメソッドはロケールに依存するため、ロケールを個別に解釈することを意図した文字列に使用すると、予期しない結果が発生する可能性があります。 例として、プログラミング言語識別子、プロトコル・キー、HTMLタグがあります。 たとえば、トルコ語ロケールの
"title".toUpperCase()
は"T\u0130TLE"
を返します。ここで、「\u0130」は上に点が付いたラテン大文字Iの文字です。 ロケールに依存しない文字列の正しい結果を取得するには、toUpperCase(Locale.ROOT)
を使用します。 - 戻り値:
- 大文字に変換された
String
。 - 関連項目:
-
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
- 関連項目:
-
stripLeading
public String stripLeading()すべての先行white spaceが削除されて、値がこの文字列である文字列を返します。この
String
オブジェクトが空の文字列を表している場合、またはこの文字列内のすべてのコード・ポイントがwhite spaceである場合は、空の文字列が返されます。それ以外の場合は、最初のコード・ポイントで始まる文字列の部分文字列を返します。最初のコード・ポイントはwhite spaceではなく、この文字列の最後のコード・ポイントまでです。
このメソッドを使用すると、文字列の先頭からwhite spaceをトリミングできます。
- 戻り値:
- 値がこの文字列で、先頭に空白がすべて削除されている文字列
- 導入されたバージョン:
- 11
- 関連項目:
-
stripTrailing
public String stripTrailing()値がこの文字列で、すべての後続white spaceが削除されている文字列を返します。この
String
オブジェクトが空の文字列を表す場合、またはこの文字列のすべての文字がwhite spaceの場合、空の文字列が返されます。それ以外の場合は、この文字列の先頭のコード・ポイントから開始し、white spaceではない最後のコード・ポイントまでの部分文字列を返します。
このメソッドを使用すると、文字列の末尾からwhite spaceをトリミングできます。
- 戻り値:
- 値がこの文字列で、後続の空白がすべて削除されている文字列
- 導入されたバージョン:
- 11
- 関連項目:
-
isBlank
public boolean isBlank()文字列が空かwhite spaceコード・ポイントのみが含まれる場合はtrue
を戻し、それ以外の場合はfalse
を返します。- 戻り値:
- 文字列が空か、white spaceコード・ポイントのみが含まれる場合は
true
(それ以外の場合はfalse
) - 導入されたバージョン:
- 11
- 関連項目:
-
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
- 関連項目:
-
stripIndent
public String stripIndent()偶然のwhite spaceをあらゆる行の最初と最後から削除して、値がこの文字列である文字列を返します。偶然のwhite spaceは、多くの場合、コンテンツを開始デリミタに揃えるためにテキスト・ブロックに存在します。 たとえば、次のコードでは、ドットは偶然のwhite spaceを表します:
このメソッドは、偶然のwhite spaceを削除するインデントとして扱い、コンテンツの相対的なインデントを保持する文字列を生成します。 |を使用して、文字列の各行の開始をビジュアル化します:String html = """ ..............<html> .............. <body> .............. <p>Hello, world</p> .............. </body> ..............</html> ..............""";
最初に、この文字列の個々の行が抽出されます。 lineは、ゼロ文字以上の文字列で、その後に行終了文字または文字列の末尾が続きます。 文字列に少なくとも1つの行終端文字がある場合、最後の行は最後の終端文字と文字列の末尾の間の文字で構成されます。 それ以外の場合、文字列にターミネータがなければ、最後の行は文字列の先頭から文字列の末尾、つまり文字列全体になります。 行には、行の終端文字は含まれていません。|<html> | <body> | <p>Hello, world</p> | </body> |</html>
次に、「最小インデント」 (min)は次のように決定されます:
空白以外の各行の(
isBlank()
により定義)では、先頭のwhite space文字がカウントされます。最後の行の先頭のwhite space文字も、「ブランク」の場合でもカウントされます。
min値はこれらのカウントの最小値です。
non-blankの各行で、minの主要なwhite space文字が削除され、後続のwhite space文字が削除されます。 「空白」の行は、空の文字列で置換されます。
最後に、LF文字
"\n"
(U+000A)を使用して行が新しい文字列に結合されます。- APIのノート:
- このメソッドの主な目的は、行のブロックを左にできるだけ奥まで移動しながら、相対的なインデントを保持することです。 そのため、最小インデントされていた行の先頭はwhite spaceではありません。 結果には、この文字列と同じ数の行終端文字が含まれます。 この文字列が行末で終わる場合、結果は行末記号で終わります。
- 実装要件:
- このメソッドでは、すべてのwhite space文字が同じ幅で扱われます。 すべての行のインデントがすべて同じ文字シーケンスで一貫して構成されているかぎり、前述の結果は同じになります。
- 戻り値:
- 偶然のインデントが削除された文字列と正規化された行末
- 導入されたバージョン:
- 15
- 関連項目:
-
translateEscapes
public String translateEscapes()文字列リテラルのように変換されたエスケープ・シーケンスを使用して、値がこの文字列の文字列を返します。エスケープ・シーケンスは次のように変換されます。
[Esc] 名 変換 \b
バックスペース U+0008
\t
水平タブ U+0009
\n
ライン・フィード U+000A
\f
改ページ U+000C
\r
キャリッジ・リターン U+000D
\s
スペース 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
このメソッドは、関数をthis
文字列に適用します。 この関数は単一の文字列引数を期待し、R
の結果を生成します。f.apply()
からスローされた例外はすべて、コール元に伝播されます。- 型パラメータ:
R
- 結果の型- パラメータ:
f
- 適用する関数- 戻り値:
- この文字列に関数を適用した結果
- 導入されたバージョン:
- 12
- 関連項目:
-
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
指定された書式の文字列と引数を使って、書式付き文字列を返します。常に使用されるロケールは、
FORMAT
カテゴリを指定してLocale.getDefault(Locale.Category)
によって返されるロケールです。- パラメータ:
format
- 書式文字列args
- 書式文字列の書式指示子により参照される引数。 引数が書式指定子よりも多い場合、余分な引数は無視されます。 引数の数は変数で、0(ゼロ)の場合があります。 引数の最大数は、「Java Virtual Machine仕様」で定義されているJava配列の最大サイズによって制限されます。 引数がnull
の場合、動作は変換に応じて異なる。- 戻り値:
- フォーマットされた文字列
- 例外:
IllegalFormatException
- 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。 考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「詳細」セクションを参照。- 導入されたバージョン:
- 1.5
- 関連項目:
-
format
指定されたロケール、書式文字列、および引数を使って、フォーマットされた文字列を返します。- パラメータ:
l
- 書式設定時に適用するlocale。l
がnull
の場合、ローカリゼーションは適用されない。format
- 書式文字列args
- 書式文字列の書式指示子により参照される引数。 引数が書式指定子よりも多い場合、余分な引数は無視されます。 引数の数は変数で、0(ゼロ)の場合があります。 引数の最大数は、「Java Virtual Machine仕様」で定義されているJava配列の最大サイズによって制限されます。 引数がnull
の場合、動作は変換に応じて異なる。- 戻り値:
- フォーマットされた文字列
- 例外:
IllegalFormatException
- 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。 考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「詳細」セクションを参照- 導入されたバージョン:
- 1.5
- 関連項目:
-
formatted
この文字列を書式文字列として使用し、指定された引数を書式設定します。- 実装要件:
- このメソッドは
String.format(this, args)
と同等です。 - パラメータ:
args
- この文字列でフォーマット指定子によって参照される引数。- 戻り値:
- フォーマットされた文字列
- 導入されたバージョン:
- 15
- 関連項目:
-
valueOf
Object
引数の文字列表現を返します。- パラメータ:
obj
-Object
。- 戻り値:
- 引数が
null
の場合は"null"
に等しい文字列。それ以外の場合はobj.toString()
の値が返される。 - 関連項目:
-
valueOf
public static String valueOf(char[] data) char
配列引数の文字列表現を返します。 文字配列の内容がコピーされます。コピー後にその文字配列が変更されても、返される文字列には影響しません。- パラメータ:
data
- 文字配列。- 戻り値:
- 文字配列の文字が格納されている
String
。
-
valueOf
public static String valueOf(char[] data, int offset, int count) char
配列引数の特定の部分配列の文字列表現を返します。offset
引数は部分配列の最初の文字のインデックスを表します。count
引数は部分配列の長さを表します。 部分配列の内容がコピーされます。コピー後に文字配列が変更されても、返される文字列には影響しません。- パラメータ:
data
- 文字配列。offset
- 部分配列の初期オフセット。count
- 部分配列の長さ。- 戻り値:
- 文字配列内の指定された部分配列の文字が格納されている
String
。 - 例外:
IndexOutOfBoundsException
-offset
が負の値の場合、count
が負の値の場合、あるいはoffset+count
がdata.length
よりも大きい場合。
-
copyValueOf
public static String copyValueOf(char[] data, int offset, int count) - パラメータ:
data
- 文字配列。offset
- 部分配列の初期オフセット。count
- 部分配列の長さ。- 戻り値:
- 文字配列内の指定された部分配列の文字が格納されている
String
。 - 例外:
IndexOutOfBoundsException
-offset
が負の値の場合、count
が負の値の場合、あるいはoffset+count
がdata.length
よりも大きい場合。
-
copyValueOf
public static String copyValueOf(char[] data) valueOf(char[])
と同等です。- パラメータ:
data
- 文字配列。- 戻り値:
- 文字配列の文字が格納されている
String
。
-
valueOf
public static String valueOf(boolean b) boolean
引数の文字列表現を返します。- パラメータ:
b
-boolean
。- 戻り値:
- 引数が
true
の場合は"true"
に等しい文字列が返され、そうでない場合は"false"
に等しい文字列が返される。
-
valueOf
public static String valueOf(char c) char
引数の文字列表現を返します。- パラメータ:
c
-char
。- 戻り値:
- 1つの文字として引数
c
が格納された、長さ1
の文字列。
-
valueOf
public static String valueOf(int i) int
引数の文字列表現を返します。この表現は1つの引数を持つ
Integer.toString
メソッドによって返されるものとまったく同じです。- パラメータ:
i
-int
。- 戻り値:
int
引数の文字列表現。- 関連項目:
-
valueOf
public static String valueOf(long l) long
引数の文字列表現を返します。この表現は1つの引数を持つ
Long.toString
メソッドによって返されるものとまったく同じです。- パラメータ:
l
-long
。- 戻り値:
long
引数の文字列表現。- 関連項目:
-
valueOf
public static String valueOf(float f) float
引数の文字列表現を返します。この表現は1つの引数を持つ
Float.toString
メソッドによって返されるものとまったく同じです。- パラメータ:
f
-float
。- 戻り値:
float
引数の文字列表現。- 関連項目:
-
valueOf
public static String valueOf(double d) double
引数の文字列表現を返します。この表現は1つの引数を持つ
Double.toString
メソッドによって返されるものとまったく同じです。- パラメータ:
d
-double
。- 戻り値:
double
引数の文字列表現。- 関連項目:
-
intern
public String intern()文字列オブジェクトの正準表現を返します。文字列のプールは、初期状態では空で、クラス
String
によってプライベートに保持されます。internメソッドが呼び出されたときに、
equals(Object)
メソッドによってこのString
オブジェクトに等しいと判定される文字列がプールにすでにあった場合は、プール内の該当する文字列が返されます。 そうでない場合は、このString
オブジェクトがプールに追加され、このString
オブジェクトへの参照が返されます。したがって、任意の2つの文字列
s
とt
について、s.intern() == t.intern()
がtrue
になるのは、s.equals(t)
がtrue
の場合だけです。すべてのリテラル文字列および文字列値定数式が保持されます。 文字列リテラルは、「Java言語仕様」のセクション3.10.5で定義されます。
- 戻り値:
- この文字列と同じ内容だが、一意の文字列のプールからのものであることが保証されている文字列。
-
repeat
public String repeat(int count) この文字列を連結した値がcount
回繰り返される文字列を返します。この文字列が空であるか、件数がゼロの場合は、空の文字列が返されます。
- パラメータ:
count
- 繰返し回数- 戻り値:
- この文字列で構成された文字列は、この文字列が空であるかカウントがゼロの場合は、
count
回繰り返されるか空の文字列です。 - 例外:
IllegalArgumentException
-count
が負の場合。- 導入されたバージョン:
- 11
-
describeConstable
このインスタンス自体の名目記述子を含むOptional
を返します。- 定義:
- インタフェース
Constable
内のdescribeConstable
- 戻り値:
- Stringインスタンスを説明する
Optional
- 導入されたバージョン:
- 12
-
resolveConstantDesc
public String resolveConstantDesc(MethodHandles.Lookup lookup) このインスタンスをConstantDesc
として解決します。その結果がインスタンス自体です。- 定義:
- インタフェース
ConstantDesc
内のresolveConstantDesc
- パラメータ:
lookup
- ignored- 戻り値:
- Stringインスタンス
- 導入されたバージョン:
- 12
-