彷徨的机器人 · stringvar转变成str ...· 6 天前 · |
高大的卤蛋 · Prevent Cross-Site ...· 3 天前 · |
有腹肌的啄木鸟 · 使用 JdbcTemplate ...· 3 天前 · |
爱跑步的钥匙 · MybatisPlus学习笔记 | ...· 3 天前 · |
咆哮的馒头 · Get Nth Entry from ...· 2 天前 · |
高大的包子 · Unity 2D 游戏开发教程:第 1 - ...· 3 周前 · |
爱听歌的匕首 · 影之诗:大赛a组五胜,铺场脸皇_对局· 2 月前 · |
欢乐的柳树 · Java字符串转数组,数组转字符串 - 穆世明博客· 4 月前 · |
旅行中的回锅肉 · 1+1>2:MIT&IBM提出结合符 ...· 4 月前 · |
不羁的打火机 · 宁波爱发科真空技术有限公司· 6 月前 · |
public final class String extends Object implements Serializable, Comparable<String>, CharSequence
String
クラスは文字列を表します。Javaプログラム内の
"abc"
などのリテラル文字列はすべて、このクラスのインスタンスとして実行されます。
文字列は定数です。この値を作成したあとに変更はできません。文字列バッファは可変文字列をサポートします。文字列オブジェクトは不変であるため、共用することができます。たとえば、
String str = "abc";
は、次と同じです。
char data[] = {'a', 'b', 'c'};
String str = new String(data);
文字列がどのように使われるかについて、さらに例を示します。
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
String c = "abc".substring(2,3);
String d = cde.substring(1, 2);
String
クラスには、文字列のそれぞれの文字をテストするメソッドや、文字列の比較、文字列の検索、部分文字列の抽出、および文字をすべて大文字または小文字に変換した文字列のコピー作成などを行うメソッドがあります。ケース・マッピングは、
Character
クラスで指定されたUnicode仕様バージョンに基づいています。
Java言語は、文字列連結演算子( + )、およびその他のオブジェクトから文字列への変換に対する特別なサポートを提供します。文字列連結は
StringBuilder
(または
StringBuffer
)クラスとその
append
メソッドを使って実装されています。文字列変換は
Object
によって定義された
toString
メソッドを使って実装され、Javaのクラスすべてによって継承されます。文字列連結および文字列変換についての詳細は、Gosling、Joy、およびSteeleによる『
Java言語仕様
』を参照してください。
ほかで指定がない場合、
null
引数をコンストラクタ、またはこのクラスのメソッドへ渡すと
NullPointerException
がスローされます。
String
は、
補助文字
を
サロゲート・ペア
で表現するUTF-16形式の文字列を表します(詳細は、
Character
クラスの「
Unicode文字表現
」セクションを参照)。
char
コード単位を参照するインデックス値です。したがって、補助文字は
String
の2つの位置を使用します。
String
クラスは、Unicodeコード単位(
char
値)を扱うメソッドのほかに、Unicodeコード・ポイント(文字)を扱うメソッドを提供します。
Object.toString()
,
StringBuffer
,
StringBuilder
,
Charset
,
直列化された形式
boolean
regionMatches
(boolean ignoreCase, int toffset,
String
other, int ooffset, int len)
boolean
regionMatches
(int toffset,
String
other, int ooffset, int len)
String
replace
(char oldChar, char newChar)
oldChar
を
newChar
に置換した結果生成される文字列を返します。
String
replace
(
CharSequence
target,
CharSequence
replacement)
String
replaceAll
(
String
regex,
String
replacement)
String
replaceFirst
(
String
regex,
String
replacement)
String
[]
split
(
String
regex)
String
[]
split
(
String
regex, int limit)
boolean
startsWith
(
String
prefix)
boolean
startsWith
(
String
prefix, int toffset)
CharSequence
subSequence
(int beginIndex, int endIndex)
String
substring
(int beginIndex)
String
substring
(int beginIndex, int endIndex)
char[]
toCharArray
()
String
toLowerCase
()
String
内のすべての文字を小文字に変換します。
String
toLowerCase
(
Locale
locale)
Locale
のルールを使って、この
String
内のすべての文字を小文字に変換します。
String
toString
()
String
toUpperCase
()
String
内のすべての文字を大文字に変換します。
String
toUpperCase
(
Locale
locale)
Locale
のルールを使って、この
String
内のすべての文字を大文字に変換します。
String
trim
()
static
String
valueOf
(boolean b)
boolean
引数の文字列表現を返します。
static
String
valueOf
(char c)
char
引数の文字列表現を返します。
static
String
valueOf
(char[] data)
char
配列引数の文字列表現を返します。
static
String
valueOf
(char[] data, int offset, int count)
char
配列引数の特定の部分配列の文字列表現を返します。
static
String
valueOf
(double d)
double
引数の文字列表現を返します。
static
String
valueOf
(float f)
float
引数の文字列表現を返します。
static
String
valueOf
(int i)
int
引数の文字列表現を返します。
static
String
valueOf
(long l)
long
引数の文字列表現を返します。
static
String
valueOf
(
Object
obj)
Object
引数の文字列表現を返します。
public static final Comparator<String> CASE_INSENSITIVE_ORDER
compareToIgnoreCase
の場合と同じように
String
オブジェクトを順序付けるComparatorです。このコンパレータは直列化可能です。
このComparatorはロケールを考慮
しない
ので、一部のロケールでは、正しい順序に並べられないことがあります。java.textパッケージは、ロケールに依存する並べ替えを行うために
照合機能
を提供しています。
Collator.compare(String, String)
public String(String original)
String
オブジェクトを初期化して、引数と同じ文字シーケンスを表すようにします。つまり、新しく作成された文字列は引数文字列のコピーになります。Stringは不変なので、
original
の明示的なコピーが必要でないかぎり、このコンストラクタを使う必要はありません。
original
-A
String
public String(char[] value)
String
を割り当てて、これが文字配列引数に現在含まれている文字シーケンスを表すようにします。文字配列の内容がコピーされます。コピー後にその文字が変更されても、新しく作成された文字列には影響しません。
value
- 文字列の初期値
String
を割り当てます。引数
offset
は部分配列の先頭の文字のインデックスであり、引数
count
は部分配列の長さを指定します。部分配列の内容がコピーされます。コピー後に文字配列が変更されても、新しく作成された文字列には影響しません。
value
- 文字列のソースである配列
offset
- 初期オフセット
count
- 長さ
IndexOutOfBoundsException
-
offset
引数と
count
引数が、
value
配列の境界の外側の文字を指す場合
String
を割り当てます。引数
offset
は部分配列の先頭のコード・ポイントのインデックスであり、引数
count
は部分配列の長さを指定します。部分配列の内容が
char
に変換されます。変換後に
int
配列が変更されても、新しく作成された文字列には影響しません。
codePoints
- Unicodeコード・ポイントのソースである配列
offset
- 初期オフセット
count
- 長さ
IllegalArgumentException
-
codePoints
で無効なUnicodeコード・ポイントが見つかった場合
IndexOutOfBoundsException
-
offset
引数と
count
引数が、
codePoints
配列の境界の外側の文字を指す場合
Charset
(文字セットの名前)を取る、またはプラットフォームのデフォルト文字セットを使用する
String
コンストラクタの使用が推奨されます。
String
を割り当てます。
引数
offset
は部分配列の先頭のバイトのインデックスであり、引数
count
は部分配列の長さを指定します。
部分配列の各
byte
は上記メソッドに指定される
char
に変換されます。
ascii
- 文字列に変換されるバイト
hibyte
- 16ビットの各Unicodeコード単位の上位8ビット
offset
- 初期オフセット
count
- 長さ
IndexOutOfBoundsException
-
offset
または
count
引数が無効な場合
String(byte[], int)
,
String(byte[], int, int, java.lang.String)
,
String(byte[], int, int, java.nio.charset.Charset)
,
String(byte[], int, int)
,
String(byte[], java.lang.String)
,
String(byte[], java.nio.charset.Charset)
,
String(byte[])
Charset
(文字セットの名前)を取る、またはプラットフォームのデフォルト文字セットを使用する
String
コンストラクタの使用が推奨されます。
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
を構築します。新しい
String
の長さは文字セットによって変化するため、部分配列長と一致しないことがあります。
指定された文字セットで指定されたバイトが無効な場合、このコンストラクタの動作は指定されません。デコード処理をより強力に制御する必要がある場合、
CharsetDecoder
クラスを使用する必要があります。
bytes
- 文字列に復号化されるバイト
offset
- 復号化される先頭バイトのインデックス
length
- 復号化するバイト数
charsetName
- サポートされている
charset
の名前
UnsupportedEncodingException
- 指定された文字セットがサポートされていない場合
IndexOutOfBoundsException
-
offset
引数と
length
引数が、
bytes
配列の境界の外側の文字を指す場合
String
を構築します。新しい
String
の長さは文字セットによって変化するため、部分配列長と一致しないことがあります。
このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、この文字セットのデフォルトの置換文字列で置き換えます。デコード処理をより強力に制御する必要がある場合、
CharsetDecoder
クラスを使用する必要があります。
bytes
- 文字列に復号化されるバイト
offset
- 復号化される先頭バイトのインデックス
length
- 復号化するバイト数
charset
-
bytes
の復号化に使用される
文字セット
IndexOutOfBoundsException
-
offset
引数と
length
引数が、
bytes
配列の境界の外側の文字を指す場合
String
を構築します。新しい
String
の長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。
指定された文字セットで指定されたバイトが無効な場合、このコンストラクタの動作は指定されません。デコード処理をより強力に制御する必要がある場合、
CharsetDecoder
クラスを使用する必要があります。
bytes
- 文字列に復号化されるバイト
charsetName
- サポートされている
charset
の名前
UnsupportedEncodingException
- 指定された文字セットがサポートされていない場合
public String(byte[] bytes, Charset charset)
String
を構築します。新しい
String
の長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。
このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、この文字セットのデフォルトの置換文字列で置き換えます。デコード処理をより強力に制御する必要がある場合、
CharsetDecoder
クラスを使用する必要があります。
bytes
- 文字列に復号化されるバイト
charset
-
bytes
の復号化に使用される
文字セット
String
を構築します。新しい
String
の長さは文字セットによって変化するため、部分配列長と一致しないことがあります。
指定されたバイトがデフォルトの文字セットで無効な場合、このコンストラクタの動作は指定されません。デコード処理をより強力に制御する必要がある場合、
CharsetDecoder
クラスを使用する必要があります。
bytes
- 文字列に復号化されるバイト
offset
- 復号化される先頭バイトのインデックス
length
- 復号化するバイト数
IndexOutOfBoundsException
-
offset
引数と
length
引数が、
bytes
配列の境界の外側の文字を指す場合
public String(byte[] bytes)
String
を構築します。新しい
String
の長さは文字セットによって変化するため、バイト配列長と一致しないことがあります。
指定されたバイトがデフォルトの文字セットで無効な場合、このコンストラクタの動作は指定されません。デコード処理をより強力に制御する必要がある場合、
CharsetDecoder
クラスを使用する必要があります。
bytes
- 文字列に復号化されるバイト
public String(StringBuffer buffer)
buffer
-A
StringBuffer
public String(StringBuilder builder)
このコンストラクタの提供目的は、
StringBuilder
に移行しやすくすることです。
toString
メソッドを使って文字列ビルダーから文字列を取得することは、処理が高速になるので一般的に推奨されています。
builder
-A
StringBuilder
public char charAt(int index)
char
値を返します。インデックスの範囲は
0
から
length() - 1
までです。配列のインデックス付けの場合と同じように、シーケンスの最初の
char
のインデックスは
0
、次の文字のインデックスは
1
と続きます。
インデックスで指定された
char
値が
サロゲート
の場合、サロゲート値が返されます。
charAt
、インタフェース:
CharSequence
index
-
char
値のインデックス。
char
値。最初の
char
値のインデックスが
0
になる。
IndexOutOfBoundsException
-
index
引数が負の値、または文字列の長さと同じかこれより大きい値の場合。
public int codePointAt(int index)
char
値(Unicodeコード単位)を参照し、その範囲は
0
-
length()
- 1
になります。
指定されたインデックス位置の指定された
char
値が上位サロゲート範囲に含まれており、それに続くインデックスが
String
の長さ未満であり、かつそのインデックス位置の
char
値が下位サロゲート範囲に含まれている場合、このサロゲート・ペアに対応する補助コード・ポイントが返されます。それ以外の場合は、指定されたインデックスにある
char
値が返されます。
index
-
char
値へのインデックス
index
にある文字のコード・ポイント値
IndexOutOfBoundsException
-
index
引数が負の値、または文字列の長さと同じかこれより大きい値の場合。
public int codePointBefore(int index)
char
値(Unicodeコード単位)を参照し、その範囲は
1
-
length
になります。
(index - 1)
の
char
値が下位サロゲート範囲に含まれており、
(index - 2)
が負でなく、かつ
(index - 2)
の
char
値が上位サロゲートに含まれている場合、そのサロゲート・ペアの補助コード・ポイント値が返されます。
index - 1
の
char
値が、ペアになっていない下位サロゲートであるか、または上位サロゲートである場合、そのサロゲート値が返されます。
index
- 返すべきコード・ポイントの直後のインデックス
IndexOutOfBoundsException
-
index
引数が1未満であるか、またはこの文字列の長さより大きい値の場合。
public int codePointCount(int beginIndex, int endIndex)
String
の指定されたテキスト範囲のUnicodeコード・ポイントの数を返します。テキスト範囲は、指定された
beginIndex
からインデックス
endIndex - 1
の位置の
char
までです。したがって、テキスト範囲の長さ(
char
数)は、
endIndex-beginIndex
になります。テキスト範囲内でペアになっていないサロゲートは、それぞれ1つのコード・ポイントとして数えられます。
beginIndex
- テキスト範囲内の最初の
char
へのインデックス。
endIndex
- テキスト範囲内の最後の
char
の直後のインデックス。
IndexOutOfBoundsException
-
beginIndex
が負であるか、
endIndex
がこの
String
の長さより大きいか、あるいは
beginIndex
が
endIndex
より大きい場合。
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
コード・ポイントの絶対値よりも小さい場合。
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()
メソッドの使用が推奨されます。
コピーする最初の文字はインデックス
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
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
String
をバイト・シーケンスにエンコードし、結果を新規バイト配列に格納します。
指定された文字セットでこの文字列をエンコードできない場合、このメソッドの動作は指定されません。エンコード処理をより強力に制御する必要がある場合は、
CharsetEncoder
クラスを使用してください。
charsetName
- サポートされている
charset
の名前
UnsupportedEncodingException
- 指定された文字セットがサポートされていない場合
public byte[] getBytes(Charset charset)
String
をバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納します。
このメソッドは、不正入力シーケンスやマップ不可文字シーケンスを、この文字セットのデフォルトの置換バイト配列で置き換えます。エンコード処理をより強力に制御する必要がある場合は、
CharsetEncoder
クラスを使用してください。
charset
-
String
のエンコード化に使用される
Charset
public byte[] getBytes()
String
をバイト・シーケンスにエンコード化し、結果を新規バイト配列に格納します。
デフォルトの文字セットでこの文字列をエンコード化できない場合、このメソッドの動作は指定されません。エンコード処理をより強力に制御する必要がある場合は、
CharsetEncoder
クラスを使用してください。
public boolean equals(Object anObject)
null
ではなく、このオブジェクトと同じ文字シーケンスを表す
String
オブジェクトである場合にだけ、結果は
true
になります。
equals
、クラス:
Object
anObject
- この
String
と比較するオブジェクト
String
を表す場合は
true
、それ以外の場合は
false
compareTo(String)
,
equalsIgnoreCase(String)
public boolean contentEquals(StringBuffer sb)
StringBuffer
を比較します。結果が
true
になるのは、この
String
が指定された
StringBuffer
と同じ文字シーケンスを表す場合だけです。このメソッドは、
StringBuffer
との同期をとります。
sb
- この
String
と比較する
StringBuffer
String
が、指定された
StringBuffer
と同じ文字シーケンスを表す場合は
true
。そうでない場合は
false
public boolean contentEquals(CharSequence cs)
CharSequence
を比較します。この
String
が、指定されたシーケンスと同じ文字値シーケンスを表す場合にだけ、結果が
true
になります。
CharSequence
が
StringBuffer
である場合、このメソッドはそれとの同期をとるので注意してください。
cs
- この
String
と比較されるシーケンス
String
が、指定されたシーケンスと同じ文字値シーケンスを表す場合は
true
。そうでない場合は
false
public boolean equalsIgnoreCase(String anotherString)
String
を別の
String
と比較します。長さが同じで、2つの文字列内の対応する文字が大文字と小文字の区別なしで等しい場合、2つの文字列は大文字と小文字の区別なしで等しいと見なされます。
次のどれかに該当する場合に、
c1
と
c2
という2つの文字は大文字小文字の区別なしで等しいと見なされます。
==
演算子による比較)
Character.toUpperCase(char)
メソッドをそれぞれの文字に適用すると同じ結果になる
Character.toLowerCase(char)
メソッドをそれぞれの文字に適用すると同じ結果になる
anotherString
- この
String
と比較する
String
null
でなく、同等の
String
(大文字と小文字の区別なし)を表す場合は
true
、それ以外の場合は
false
equals(Object)
public int compareTo(String anotherString)
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()
compareTo
、インタフェース:
Comparable
<
String
>
anotherString
- 比較対象の
String
。
0
。この文字列が文字列引数より辞書式に小さい場合は、
0
より小さい値。この文字列が文字列引数より辞書式に大きい場合は、
0
より大きい値。
public int compareToIgnoreCase(String str)
compareTo
を呼び出して得られた符号を持つ整数を返します。ここでは、各文字で
Character.toLowerCase(Character.toUpperCase(character))
を呼び出すことで大文字と小文字の違いがなくなります。
このメソッドはロケールを考慮
しない
ので、一部のロケールでは、正しい順序に並べられないことがあります。java.textパッケージは、ロケールに依存する並べ替えを行うために
照合機能
を提供しています。
str
- 比較対象の
String
。
Collator.compare(String, String)
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
)
toffset
- この文字列内の部分領域の開始オフセット。
other
- 文字列引数。
ooffset
- 文字列引数内の部分領域の開始オフセット。
len
- 比較対象の文字数。
true
、そうでない場合は
false
。
String
オブジェクトの部分文字列が、引数
other
の部分文字列と比較されます。これらの部分文字列が同じ文字シーケンスを表す場合、結果は
true
になります。
ignoreCase
がtrueの場合にのみ、大文字と小文字が区別されません。比較の対象となる
String
オブジェクトの部分文字列は、インデックス
toffset
から始まり、長さは
len
です。比較の対象となる
other
の部分文字列はインデックス
ooffset
から始まり、長さは
len
です。次のどれかに該当する場合にだけ、結果は
false
になります。
toffset
が負の場合。
ooffset
が負の場合。
toffset+len
がこの
String
オブジェクトの長さより大きい。
ooffset+len
が引数otherの長さより大きい。
ignoreCase
が
false
であり、
len
より小さく、負でない、次のような整数
k
がある:
this.charAt(toffset+k) != other.charAt(ooffset+k)
ignoreCase
が
true
であり、
len
より小さく、負でない、次のような整数
k
がある:
Character.toLowerCase(this.charAt(toffset+k)) !=
Character.toLowerCase(other.charAt(ooffset+k))
Character.toUpperCase(this.charAt(toffset+k)) !=
Character.toUpperCase(other.charAt(ooffset+k))
ignoreCase
-
true
の場合、文字の比較の際に大文字小文字は区別されない。
toffset
- この文字列内の部分領域の開始オフセット。
other
- 文字列引数。
ooffset
- 文字列引数内の部分領域の開始オフセット。
len
- 比較対象の文字数。
true
、そうでない場合は
false
。一致した場合に、大文字と小文字が区別されているかどうかは引数
ignoreCase
によって決まる。
public boolean startsWith(String prefix, int toffset)
prefix
- 接頭辞。
toffset
- この文字列の比較を開始する位置。
toffset
で始まるこのオブジェクトの部分文字列の接頭辞である場合は
true
、そうでない場合は
false
。
toffset
が負の値の場合、あるいは
String
オブジェクトの長さより大きい場合、結果は
false
。そうでない場合は、結果は次の式の結果と同じ
this.substring(toffset).startsWith(prefix)
prefix
- 接頭辞。
true
、そうでない場合は
false
。引数が空の文字列の場合や、
equals(Object)
メソッドによる判定においてこの
String
オブジェクトに等しい場合にも
true
が返される。
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)
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
。
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
。
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
。
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
。
public int indexOf(String str, int fromIndex)
返されるインデックスは、次の式がtrueとなるような最小値
k
になります。
k
>= fromIndex
&&
this.startsWith(str,
k
)
このような
k
の値が存在しない場合、
-1
が返されます。
str
- 検索対象の部分文字列。
fromIndex
-検索開始位置のインデックス。
-1
。
public int lastIndexOf(String str)
this.length()
と見なされます。
返されるインデックスは、次の式がtrueとなるような最大値
k
になります。
this.startsWith(str,
k
)
このような
k
の値が存在しない場合、
-1
が返されます。
str
- 検索対象の部分文字列。
-1
。
public int lastIndexOf(String str, int fromIndex)
返されるインデックスは、次の式がtrueとなるような最大値
k
になります。
k
<=
fromIndex
&&
this.startsWith(str,
k
)
このような
k
の値が存在しない場合、
-1
が返されます。
str
- 検索対象の部分文字列。
fromIndex
- 検索開始位置のインデックス。
-1
。
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
オブジェクトの長さより大きい場合。
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
より大きい場合。
public CharSequence subSequence(int beginIndex, int endIndex)
次のフォームのメソッド呼出しは、 str.subSequence(begin, end) 次の呼び出しと正確に同じ動作になります。 str.substring(begin, end)
subSequence
、インタフェース:
CharSequence
String
クラスが
CharSequence
インタフェースを実装できるようにするためです。
beginIndex
- 開始インデックス(この値を含む)。
endIndex
- 終了インデックス(この値を含まない)。
IndexOutOfBoundsException
-
beginIndex
または
endIndex
が負の場合、
endIndex
が
length()
より大きい場合、または
beginIndex
が
endIndex
より大きい場合
0
の場合は、この
String
オブジェクトが返されます。それ以外の場合は、この
String
オブジェクトで表される文字列と引数文字列で表される文字列とを連結したものを表す
String
オブジェクトが返されます。
"cares".concat("s") returns "caress" "to".concat("get").concat("her") returns "together"
str
- この
String
の最後に連結される
String
。
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
に置換することによって生成された文字列。
このフォームのメソッド呼び出し
str
.matches(
regex
)
では、次の式と正確に同じ結果が得られます。
Pattern
.
matches(
regex
,
str
)
regex
- この文字列との一致を判定する正規表現
true
が返される
PatternSyntaxException
- 正規表現の構文が無効な場合
Pattern
public boolean contains(CharSequence s)
s
- 検索するシーケンス
s
を含む場合はtrue。そうでない場合はfalse
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
- 正規表現の構文が無効な場合
Pattern
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
- 正規表現の構文が無効な場合
Pattern
public String replace(CharSequence target, CharSequence replacement)
target
- 置換されるchar値のシーケンス
replacement
- char値の置換シーケンス
この文字列の各部分文字列を含むメソッドにより返される配列は、指定された式に一致する別の部分文字列、またはその文字列の最後で終了します。配列内の部分文字列の順序は、この文字列内で出現する順序になります。入力されたどの部分とも式が一致しない場合、配列は1つの要素(つまり、この文字列)だけを保持します。
この文字列の先頭に、正の幅のマッチがある場合、結果の配列の先頭に、空の先頭部分文字列が含まれます。先頭のゼロの幅の一致では、そのような空の先頭の部分文字列は生成されません。
limit
パラメータは、このパターンの適用回数を制御するため、結果となる配列の長さに影響を及ぼします。制限
n
がゼロより大きい場合、このパターンは最大で
n
- 1回まで適用され、配列の長さは
n
以下となります。配列の最後のエントリには、最後に一致した区切り文字以降の入力シーケンスがすべて含まれます。
n
が負の値の場合、このパターンの適用回数と配列の長さは制限されません。
n
がゼロの場合、このパターンの適用回数と配列の長さは制限されませんが、後続の空の文字列は破棄されます。
たとえば、次のパラメータが指定された場合の、文字列
"boo:and:foo"
の結果を示します。
{ "boo", "and:foo" }
{ "boo", "and", "foo" }
{ "boo", "and", "foo" }
{ "b", "", ":and:f", "", "" }
{ "b", "", ":and:f", "", "" }
{ "b", "", ":and:f" }
このフォームのメソッド呼び出し
str.
split(
regex
,
n
)
では、次の式と同じ結果が得られます。
Pattern
.
compile
(
regex
).
split
(
str
,
n
)
regex
- 正規表現の区切り
limit
- 結果のしきい値(上記を参照)
PatternSyntaxException
- 正規表現の構文が無効な場合
Pattern
このメソッドの動作は、2つの引数を取る
split
メソッドを、指定された式および制限引数ゼロを指定して呼び出した場合と同じになります。つまり、結果として得られる配列には後続の空の文字列は含まれません。
たとえば、次の式が指定された場合の、文字列
"boo:and:foo"
の結果を示します。
{ "boo", "and", "foo" }
{ "b", "", ":and:f" }
regex
- 正規表現の区切り
PatternSyntaxException
- 正規表現の構文が無効な場合
Pattern
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
または
elements
が
null
である場合
StringJoiner
public static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
delimiter
のコピーを使用して結合された
CharSequence要素
のコピーからなる新しい
String
を返します。
次に例を示します。 List<String> strings = new LinkedList<>(); strings.add("Java");strings.add("is"); strings.add("cool"); String message = String.join(" ", strings); //message returned is: "Java is cool" Set<String> strings = new LinkedHashSet<>(); strings.add("Java"); strings.add("is"); strings.add("very"); strings.add("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
である場合
join(CharSequence,CharSequence...)
,
StringJoiner
public String toLowerCase(Locale locale)
Locale
のルールを使って、この
String
内のすべての文字を小文字に変換します。ケース・マッピングは、
Character
クラスで指定されたUnicode仕様バージョンに基づいています。ケース・マッピングは常に1:1の文字マッピングになるとは限らないため、結果として得られる
String
が元の
String
と長さが異なる場合があります。
小文字のマッピング例を、次の表に示します。
ロケールの言語コード
tr (トルコ語)
\u0130
\u0069
上に点が付いた大文字のI ->小文字のi
tr (トルコ語)
\u0049
\u0131
大文字のI ->点のない小文字のi
(すべて)
French Fries
french fries
String内の文字すべてを小文字に変換
(すべて)
String内の文字すべてを小文字に変換
locale
- このロケールの大文字小文字変換ルールを使用する
String
。
toLowerCase()
,
toUpperCase()
,
toUpperCase(Locale)
public String toLowerCase()
String
内のすべての文字を小文字に変換します。これは、
toLowerCase(Locale.getDefault())
の呼び出しと同等です。
注:
このメソッドはロケールに依存するため、単独でロケールと解釈されるような文字列に使用すると、予期せぬ結果を引き起こすことがあります。例として、プログラミング言語識別子、プロトコル・キー、HTMLタグがあります。たとえば、トルコ語ロケールの
"TITLE".toLowerCase()
は
"t\u0131tle"
を返します。ここで、「\u0131」は点のないラテン小文字のIの文字です。ロケールに依存しない文字列の正しい結果を取得するには、
toLowerCase(Locale.ROOT)
を使用します。
String
。
toLowerCase(Locale)
public String toUpperCase(Locale locale)
Locale
のルールを使って、この
String
内のすべての文字を大文字に変換します。ケース・マッピングは、
Character
クラスで指定されたUnicode仕様バージョンに基づいています。ケース・マッピングは常に1:1の文字マッピングになるとは限らないため、結果として得られる
String
が元の
String
と長さが異なる場合があります。
ロケール依存および1:Mのケース・マッピングの例を、次の表に示します。
ロケールの言語コード
tr (トルコ語)
\u0069
\u0130
小文字のi ->上に点が付いた大文字のI
tr (トルコ語)
\u0131
\u0049
点のない小文字のi ->大文字のI
(すべて)
\u00df
\u0053 \u0053
小文字のシャープs -> SSの2文字
(すべて)
Fahrvergnügen
FAHRVERGNÜGEN
public String toUpperCase()
String
内のすべての文字を大文字に変換します。このメソッドは、
toUpperCase(Locale.getDefault())
と同等です。
注:
このメソッドはロケールに依存するため、単独でロケールと解釈されるような文字列に使用すると、予期せぬ結果を引き起こすことがあります。例として、プログラミング言語識別子、プロトコル・キー、HTMLタグがあります。たとえば、トルコ語ロケールの
"title".toUpperCase()
は
"T\u0130TLE"
を返します。ここで、「\u0130」は上に点が付いたラテン大文字Iの文字です。ロケールに依存しない文字列の正しい結果を取得するには、
toUpperCase(Locale.ROOT)
を使用します。
String
。
toUpperCase(Locale)
String
オブジェクトが空の文字列を表す場合、あるいはこの
String
オブジェクトによって表される文字列の最初と最後の文字のコードが
'\u0020'
(スペース文字)より大きい場合は、この
String
オブジェクトへの参照が返されます。
文字列内に
'\u0020'
より大きいコードの文字がない場合は、空の文字列を表す
String
オブジェクトが返されます。
それ以外の場合、
k
を、文字列内で
'\u0020'
より大きいコードを持つ最初の文字のインデックス、
m
を、文字列内で
'\u0020'
より大きいコードを持つ最後の文字のインデックスであるとします。インデックス
k
の文字で始まってインデックス
m
の文字で終わるこの文字列の部分文字列、つまり
this.substring(k, m + 1)
の部分文字列を表す
String
オブジェクトが返されます。
このメソッドは文字列の先頭と最後から(上記で定義された)空白を切り取るために使用できます。
public static String format(String format, Object... args)
常に使用されるロケールは、
Locale.getDefault()
により返されたものです。
format
-
書式文字列
args
- 書式文字列の書式指示子により参照される引数。書式指示子よりも引数が多い場合、余分な引数は無視される。引数の数は変動し、ゼロの場合もある。引数の最大数は、
Java(tm)仮想マシン仕様
で定義されているJava配列の最大次元により制限される。引数が
null
の場合、動作は
変換
に応じて異なる。
IllegalFormatException
- 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「
詳細
」セクションを参照。
Formatter
l
- 書式設定時に適用する
locale
。
l
が
null
の場合、ローカリゼーションは適用されない。
format
-
書式文字列
args
- 書式文字列の書式指示子により参照される引数。書式指示子よりも引数が多い場合、余分な引数は無視される。引数の数は変動し、ゼロの場合もある。引数の最大数は、
Java(tm)仮想マシン仕様
で定義されているJava配列の最大次元により制限される。引数が
null
の場合、動作は
変換
に応じて異なる。
IllegalFormatException
- 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に指定された不適切な引数、またはほかの不正な条件を含む場合。考えられるすべての書式エラーの仕様については、フォーマッタ・クラス仕様の「
詳細
」セクションを参照
Formatter
public static String valueOf(char[] data)
char
配列引数の文字列表現を返します。文字配列の内容がコピーされます。コピー後にその文字配列が変更されても、返される文字列には影響しません。
data
- 文字配列。
String
。
char
配列引数の特定の部分配列の文字列表現を返します。
offset
引数は部分配列の最初の文字のインデックスを表します。
count
引数は部分配列の長さを表します。部分配列の内容がコピーされます。コピー後に文字配列が変更されても、返される文字列には影響しません。
data
- 文字配列。
offset
- 部分配列の初期オフセット。
count
- 部分配列の長さ。
String
。
IndexOutOfBoundsException
-
offset
が負の値の場合、
count
が負の値の場合、あるいは
offset+count
が
data.length
よりも大きい場合。
String
によってプライベートに保持されます。
internメソッドが呼び出されたときに、
equals(Object)
メソッドによってこの
String
オブジェクトに等しいと判定される文字列がプールにすでにあった場合は、プール内の該当する文字列が返されます。そうでない場合は、この
String
オブジェクトがプールに追加され、この
String
オブジェクトへの参照が返されます。
したがって、任意の2つの文字列
s
と
t
について、
s.intern() == t.intern()
が
true
になるのは、
s.equals(t)
が
true
の場合だけです。
すべてのリテラル文字列および文字列値定数式が保持されます。文字列リテラルは、『
Java(tm)言語仕様
』のセクション3.10.5で定義されています。
爱听歌的匕首 · 影之诗:大赛a组五胜,铺场脸皇_对局 2 月前 |
欢乐的柳树 · Java字符串转数组,数组转字符串 - 穆世明博客 4 月前 |
不羁的打火机 · 宁波爱发科真空技术有限公司 6 月前 |