|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.lang.String
String
クラスは文字列を表します。Java プログラム内の "abc"
などのリテラル文字列はすべて、このクラスのインスタンスとして実行されます。
文字列は定数です。この値を作成したあとに変更はできません。StringBuffer
は可変文字列をサポートします。文字列オブジェクトは不変であるため、共用することができます。たとえば
String str = "abc";
は、次と同じです。
char data[] = {'a', 'b', 'c'}; String str = new String(data);
文字列がどのように使われるかについて、さらに例を示します。
System.out.println("abc"); String cde = "cde"; System.out.println("abc" + cde); String c = "abc".substring(2,3); String d = cde.substring(1, 2);
String
クラスには、文字列のそれぞれの文字をテストするメソッドや、文字列の比較、文字列の検索、部分文字列の抽出、および文字をすべて大文字または小文字に変換した文字列のコピー作成などを行うメソッドがあります。
Java 言語は、文字列連結演算子 ( + )、およびその他のオブジェクトから文字列への変換に対する特別なサポートを提供します。文字列連結は StringBuffer
クラスとその append
メソッドを使って実装されています。文字列変換は Object
によって定義された toString
メソッドを使って実装され、Java のクラスすべてによって継承されます。文字列連結および文字列変換についての詳細は、Gosling、Joy、および Steele の「Java 言語仕様」を参照してください。
Object.toString()
,
StringBuffer
,
StringBuffer.append(boolean)
,
StringBuffer.append(char)
,
StringBuffer.append(char[])
,
StringBuffer.append(char[], int, int)
,
StringBuffer.append(double)
,
StringBuffer.append(float)
,
StringBuffer.append(int)
,
StringBuffer.append(long)
,
StringBuffer.append(java.lang.Object)
,
StringBuffer.append(java.lang.String)
,
「文字エンコーディング」, 直列化された形式フィールドの概要 | |
static Comparator |
CASE_INSENSITIVE_ORDER
compareToIgnoreCase の場合と同じように String オブジェクトを順序付ける Comparator を返します。 |
コンストラクタの概要 | |
String()
新しく生成された String オブジェクトを初期化して、空の文字シーケンスを表すようにします。 |
|
String(byte[] bytes)
プラットフォームのデフォルトの文字エンコーディングを使って、指定されたバイト配列を変換することによって新しい String を構築します。 |
|
String(byte[] ascii,
int hibyte)
推奨されていません。 このメソッドでは、バイトから文字への変換が正しく行われません。JDK 1.1 以降では、バイトから文字への変換には、引数として文字エンコーディングの名前をとる String コンストラクタ、またはプラットフォームのデフォルトのエンコーディングを使用する String コンストラクタの使用が推奨されます。 |
|
String(byte[] bytes,
int offset,
int length)
プラットフォームのデフォルトの文字エンコーディングを使って、指定されたバイト列の部分配列を変換することによって、新しい String を構築します。 |
|
String(byte[] ascii,
int hibyte,
int offset,
int count)
推奨されていません。 このメソッドでは、バイトから文字への変換が正しく行われません。JDK 1.1 以降では、バイトから文字への変換には、引数として文字エンコーディングの名前をとる String コンストラクタ、またはプラットフォームのデフォルトのエンコーディングを使用する String コンストラクタの使用が推奨されます。 |
|
String(byte[] bytes,
int offset,
int length,
String enc)
指定された文字エンコーディングを使用して、指定されたバイト部分配列を変換することによって、新しい String を構築します。 |
|
String(byte[] bytes,
String enc)
指定された文字エンコーディングを使って、指定されたバイト配列の変換を行うことによって、新しい String を構築します。 |
|
String(char[] value)
新しい String を割り当てて、これが文字配列引数に現在含まれている文字シーケンスを表すようにします。 |
|
String(char[] value,
int offset,
int count)
文字配列引数の部分配列からなる文字を含む新しい String を割り当てます。 |
|
String(String value)
新しく生成された String オブジェクトを初期化して、引数と同じ文字シーケンスを表すようにします。 |
|
String(StringBuffer buffer)
StringBuffer 型の引数に現在含まれている文字列を持つ新しい文字列を構築します。 |
メソッドの概要 | |
char |
charAt(int index)
指定されたインデックス位置にある文字を返します。 |
int |
compareTo(Object o)
この String をほかの Object と比較します。 |
int |
compareTo(String anotherString)
2 つの文字列を辞書式に比較します。 |
int |
compareToIgnoreCase(String str)
大文字小文字の区別なしで、2 つの文字列を辞書式に比較します。 |
String |
concat(String str)
指定された文字列をこの文字列の最後に連結します。 |
static String |
copyValueOf(char[] data)
指定された文字配列と同一の String を返します。 |
static String |
copyValueOf(char[] data,
int offset,
int count)
指定された文字配列と同一の String を返します。 |
boolean |
endsWith(String suffix)
この文字列が、指定された接尾辞で終るかどうかを判定します。 |
boolean |
equals(Object anObject)
この文字列と指定されたオブジェクトを比較します。 |
boolean |
equalsIgnoreCase(String anotherString)
この String とほかの String を比較します。 |
byte[] |
getBytes()
String をプラットフォームのデフォルトの文字エンコーディングに従ってバイトに変換し、結果を新しいバイト配列に格納します。 |
void |
getBytes(int srcBegin,
int srcEnd,
byte[] dst,
int dstBegin)
推奨されていません。 このメソッドでは、文字からバイトへの変換が正しく行われません。JDK 1.1 以降では、文字からバイトへの変換には、引数として文字エンコーディング名をとる getBytes(String enc) メソッド、またはプラットフォームのデフォルトのエンコーディングを使用する getBytes() メソッドの使用が推奨されます。 |
byte[] |
getBytes(String enc)
String を指定された文字エンコーディングに従ってバイトに変換し、結果を新しいバイト配列に格納します。 |
void |
getChars(int srcBegin,
int srcEnd,
char[] dst,
int dstBegin)
この文字列から、コピー先の文字配列に文字をコピーします。 |
int |
hashCode()
この文字列のハッシュコードを返します。 |
int |
indexOf(int ch)
この文字列内で、指定された文字が最初に出現する位置のインデックスを返します。 |
int |
indexOf(int ch,
int fromIndex)
この文字列内で、指定されたインデックスから検索を開始し、指定された文字が最初に出現する位置のインデックスを返します。 |
int |
indexOf(String str)
この文字列内で、指定された部分文字列が最初に出現する位置のインデックスを返します。 |
int |
indexOf(String str,
int fromIndex)
指定されたインデックス以降で、指定された部分文字列がこの文字列内で最初に出現する位置のインデックスを返します。 |
String |
intern()
文字列オブジェクトの正準表現を返します。 |
int |
lastIndexOf(int ch)
この文字列内で、指定された文字が最後に出現する位置のインデックスを返します。 |
int |
lastIndexOf(int ch,
int fromIndex)
この文字列内で、指定された文字が最後に出現する位置のインデックスを返します (検索は指定されたインデックスから開始され、先頭方向に行われる)。 |
int |
lastIndexOf(String str)
この文字列内で、指定された部分文字列が一番右に出現する位置のインデックスを返します。 |
int |
lastIndexOf(String str,
int fromIndex)
この文字列内で、指定された部分文字列が最後に出現する位置のインデックスを返します。 |
int |
length()
この文字列の長さを返します。 |
boolean |
regionMatches(boolean ignoreCase,
int toffset,
String other,
int ooffset,
int len)
2 つの文字列領域が等しいかどうかを判定します。 |
boolean |
regionMatches(int toffset,
String other,
int ooffset,
int len)
2 つの文字列領域が等しいかどうかを判定します。 |
String |
replace(char oldChar,
char newChar)
この文字列内にあるすべての oldChar を newChar に置換した結果生成される、新しい文字列を返します。
|
boolean |
startsWith(String prefix)
この文字列が、指定された接頭辞で始まるかどうかを判定します。 |
boolean |
startsWith(String prefix,
int toffset)
この文字列の指定されたインデックス以降の部分文字列が、指定された接頭辞で始まるかどうかを判定します。 |
String |
substring(int beginIndex)
この文字列の部分文字列である新しい文字列を返します。 |
String |
substring(int beginIndex,
int endIndex)
この文字列の部分文字列である新しい文字列を返します。 |
char[] |
toCharArray()
この文字列を新しい文字配列に変換します。 |
String |
toLowerCase()
Locale.getDefault によって返されるデフォルトロケールの規則を使って、この String 内のすべての文字を小文字に変換します。
|
String |
toLowerCase(Locale locale)
指定された Locale の規則を使用して、この String 内のすべての文字を小文字に変換します。 |
String |
toString()
このオブジェクト (すでに文字列である) 自身が返されます。 |
String |
toUpperCase()
Locale.getDefault によって返されるデフォルトロケールの規則を使って、この String 内のすべての文字を大文字に変換します。
|
String |
toUpperCase(Locale locale)
指定されたロケールの規則を使用して、この String 内のすべての文字を大文字に変換します。 |
String |
trim()
この文字列の両端から空白を除去します。 |
static String |
valueOf(boolean b)
boolean 引数の文字列表現を返します。 |
static String |
valueOf(char c)
char 引数の文字列表現を返します。 |
static String |
valueOf(char[] data)
char 配列引数の文字列表現を返します。 |
static String |
valueOf(char[] data,
int offset,
int count)
char 配列引数の特定の部分配列の文字列表現を返します。
|
static String |
valueOf(double d)
double 引数の文字列表現を返します。
|
static String |
valueOf(float f)
float 引数の文字列表現を返します。
|
static String |
valueOf(int i)
int 引数の文字列表現を返します。
|
static String |
valueOf(long l)
long 引数の文字列表現を返します。
|
static String |
valueOf(Object obj)
Object 引数の文字列表現を返します。 |
クラス java.lang.Object から継承したメソッド |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
public static final Comparator CASE_INSENSITIVE_ORDER
compareToIgnoreCase
の場合と同じように String
オブジェクトを順序付ける Comparator を返します。このコンパレータは直列化可能です。
この Comparator はロケールを考慮しないので、一部のロケールでは、正しい順序に並べられないことがあります。java.text パッケージは、ロケールに依存する並べ替えを行うために Collator を提供しています。
Collator.compare(String, String)
コンストラクタの詳細 |
public String()
String
オブジェクトを初期化して、空の文字シーケンスを表すようにします。public String(String value)
String
オブジェクトを初期化して、引数と同じ文字シーケンスを表すようにします。つまり、新しく作成された文字列は引数文字列のコピーになります。value
- String
public String(char[] value)
String
を割り当てて、これが文字配列引数に現在含まれている文字シーケンスを表すようにします。文字配列の内容がコピーされます。コピー後に文字配列が変更されても、新しく作成された文字列には影響しません。value
- 文字列の初期値NullPointerException
- value
が null
の場合public String(char[] value, int offset, int count)
String
を割り当てます。引数 offset
は部分配列の先頭の文字のインデックスであり、引数 count
は部分配列の長さを指定します。部分配列の内容がコピーされます。コピー後に文字配列が変更されても、新しく作成された文字列には影響しません。value
- 文字列のソースである配列offset
- 初期オフセットcount
- 長さIndexOutOfBoundsException
- offset
および count
引数によるインデックス文字列が value
配列の範囲外となる場合NullPointerException
- value
が null
の場合public String(byte[] ascii, int hibyte, int offset, int count)
String
コンストラクタ、またはプラットフォームのデフォルトのエンコーディングを使用する String
コンストラクタの使用が推奨されます。
String
を割り当てます。
引数 offset
は部分配列の先頭のバイトのインデックスであり、引数 offset
は部分配列の長さを指定します。
部分配列の各 byte
は上記メソッドに指定される char
に変換されます。
ascii
- 文字列に変換されるバイトhibyte
- 16 ビットの各 Unicode 文字列の上位 8 ビットoffset
- 初期オフセットcount
- 長さIndexOutOfBoundsException
- 引数 offset
または count
が無効な場合NullPointerException
- ascii
が null
の場合String(byte[], int)
,
String(byte[], int, int, java.lang.String)
,
String(byte[], int, int)
,
String(byte[], java.lang.String)
,
String(byte[])
public String(byte[] ascii, int hibyte)
String
コンストラクタ、またはプラットフォームのデフォルトのエンコーディングを使用する String
コンストラクタの使用が推奨されます。
String
を割り当てます。その結果として生成される文字列のそれぞれの文字 c は、以下のようなバイト配列内の対応する要素 b から構成されます。
c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))
ascii
- 文字列に変換されるバイトhibyte
- 16 ビットの各 Unicode 文字列の上位 8 ビットNullPointerException
- ascii
が null
の場合String(byte[], int, int, java.lang.String)
,
String(byte[], int, int)
,
String(byte[], java.lang.String)
,
String(byte[])
public String(byte[] bytes, int offset, int length, String enc) throws UnsupportedEncodingException
String
を構築します。新しい String
の長さはエンコーディングによって変わるので、部分配列長と一致しないことがあります。bytes
- 文字列に変換されるバイトoffset
- 変換を行う先頭のバイトのインデックスlength
- 変換を行うバイト数enc
- サポートされる「文字エンコーディング」の名前UnsupportedEncodingException
- 指定された文字エンコーディングがサポートされていない場合IndexOutOfBoundsException
- offset
および count
引数インデックスによる文字列が value
配列の範囲外となる場合public String(byte[] bytes, String enc) throws UnsupportedEncodingException
String
を構築します。新しい String
の長さはエンコーディングによって変わるので、バイト配列長と一致しないことがあります。bytes
- 文字列に変換されるバイトenc
- サポートされる「文字エンコーディング」の名前UnsupportedEncodingException
- 指定された文字エンコーディングがサポートされていない場合public String(byte[] bytes, int offset, int length)
String
を構築します。新しい String
の長さはエンコーディングによって変わるので、部分配列の長さと一致しないことがあります。bytes
- 文字列に変換されるバイトoffset
- 変換を行う先頭のバイトのインデックスlength
- 変換を行うバイト数public String(byte[] bytes)
String
を構築します。新しい String
の長さはエンコーディングによって変わるので、バイト配列の長さと一致しないことがあります。bytes
- 文字列に変換されるバイトpublic String(StringBuffer buffer)
StringBuffer
型の引数に現在含まれている文字列を持つ新しい文字列を構築します。文字列バッファの内容がコピーされます。コピー後に文字列バッファが変更されても、新しく作成された文字列には影響しません。buffer
- StringBuffer
NullPointerException
- buffer
が null
の場合メソッドの詳細 |
public int length()
public char charAt(int index)
0
〜 length() - 1
の範囲になります。配列のインデックス付けの場合と同じように、文字列の最初の文字のインデックスは 0
、次の文字のインデックスは 1
と続きます。index
- 文字のインデックス0
になるIndexOutOfBoundsException
- index
引数が負の値、または文字列の長さと同じかこれより大きい値の場合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
NullPointerException
- dst
が null
の場合public void getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
getBytes(String enc)
メソッド、またはプラットフォームのデフォルトのエンコーディングを使用する getBytes()
メソッドの使用が推奨されます。
コピーされる最初の文字のインデックスは srcBegin
、コピーされる最後の文字のインデックスは srcEnd-1
です。したがって、コピーされる文字数は srcEnd-srcBegin
となります。文字はバイトに変換されて dst
の部分配列にコピーされます。始点のインデックスが dstBegin
で、終点のインデックスは次のようになります。
dstbegin + (srcEnd-srcBegin) - 1
srcBegin
- コピー対象文字列内の最初の文字のインデックスsrcEnd
- コピー対象文字列内の最後の文字のあとのインデックスdst
- コピー先配列dstBegin
- コピー先の配列内での開始座標IndexOutOfBoundsException
- 次のどれかの場合 srcBegin
が負の値の場合 srcBegin
が srcEnd
より大きい場合 srcEnd
がこの String の長さより大きい場合 dstBegin
が負の値の場合 dstBegin+(srcEnd-srcBegin)
が dst.length
より大きい場合NullPointerException
- dst
が null
の場合public byte[] getBytes(String enc) throws UnsupportedEncodingException
String
を指定された文字エンコーディングに従ってバイトに変換し、結果を新しいバイト配列に格納します。enc
- サポートされる「文字エンコーディング」の名前UnsupportedEncodingException
- 指定された文字エンコーディングがサポートされていない場合public byte[] getBytes()
String
をプラットフォームのデフォルトの文字エンコーディングに従ってバイトに変換し、結果を新しいバイト配列に格納します。public boolean equals(Object anObject)
null
でなく、このオブジェクトと同じ文字シーケンスを表す String
オブジェクトである場合にだけ、結果は true
になります。Object
内の equals
anObject
- この String
と比較されるオブジェクトString
が等しい場合は true
、そうでない場合は false
compareTo(java.lang.String)
,
equalsIgnoreCase(java.lang.String)
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)
,
Character.toLowerCase(char)
,
Character.toUpperCase(char)
public int compareTo(String anotherString)
String
オブジェクトによって表される文字シーケンスが、引数文字列によって表される文字シーケンスと辞書式に比較されます。この String
オブジェクトが辞書式に引数文字列より前にある場合は、結果は負の整数になります。この String
オブジェクトが辞書式に引数文字列の後ろにある場合、結果は正の整数になります。文字列が等しい場合、結果は 0 になります。equals(Object)
メソッドが true
を返すとき、compareTo
は 0
を返します。
辞書式の順序の定義を示します。2 つの文字列が異なる場合、両方の文字列に対して有効なインデックスに位置する文字が異なるか、2 つの文字列の長さが異なるか、あるいはその両方が該当します。1 つ以上のインデックスの位置にある文字が異なる場合は、このうちのもっとも小さいインデックスを k とすると、演算子によって「より小さい」値と判定される、位置 k にある文字を持つ文字列が、もう一方の文字列より辞書式に前になります。この場合、compareTo
は 2 つの文字列で位置 k
にある 2 つの文字の値の差を返します。これは次の式で表される値になります。
有効なすべてのインデックス位置における文字が同じ場合は、短いほうの文字列が辞書式に前になります。この場合は、this.charAt(k)-anotherString.charAt(k)
compareTo
は文字列の長さの差を返します。これは次の式で表される値になります。
this.length()-anotherString.length()
anotherString
- 比較対象の String
0
。この文字列が文字列引数より辞書式に小さい場合は、0
より小さい値。この文字列が文字列引数より辞書式に大きい場合は、0
より大きい値NullPointerException
- anotherString
が null
の場合public int compareTo(Object o)
compareTo(String)
と同じ動作になります。そうでない場合は ClassCastException
をスローします (String の比較は String 同士でしか行えないため)。Comparable
内の compareTo
o
- 比較対象の Object
0
。引数がこの文字列より辞書式に大きい文字列である場合は、0
より小さい値。引数がこの文字列より辞書式に小さい場合は、0
より大きい値ClassCastException
- 引数が String
ではない場合Comparable
public int compareToIgnoreCase(String str)
this.toUpperCase().toLowerCase().compareTo(str.toUpperCase().toLowerCase())
の符号を持つ整数を返します。
このメソッドはロケールを考慮しないので、一部のロケールでは、正しい順序に並べられないことがあります。java.text パッケージは、ロケールに依存する並べ替えを行うために「コレータ」を提供しています。
str
- 比較対象の String
Collator.compare(String, String)
public boolean regionMatches(int toffset, String other, int ooffset, int len)
この String オブジェクトの部分文字列が、引数 other の部分文字列と比較されます。これらの部分文字列が同じ文字シーケンスを表す場合、結果は true になります。この比較対象 String オブジェクトの部分文字列は、インデックス toffset から始まり、長さは len です。比較の対象となる other の部分文字列はインデックス ooffset から始まり、長さは len です。以下のどれかに該当する場合にだけ、結果は false になります。
toffset
- この文字列内の部分領域の開始オフセットother
- 文字列引数ooffset
- 文字列引数内の部分領域の開始オフセットlen
- 比較対象の文字数true
、そうでない場合は false
NullPointerException
- other が null の場合public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
この String オブジェクトの部分文字列が、引数 other の部分文字列と比較されます。これらの部分文字列が同じ文字シーケンスを表す場合、結果は true になります。ignoreCase が true の場合にだけ、大文字小文字が区別されません。比較の対象となる String オブジェクトの部分文字列は、インデックス toffset から始まり、長さは len です。比較の対象となる other の部分文字列は、インデックス ooffset から始まり、長さは len です。以下のどれかに該当する場合にだけ、結果は false になります。
this.charAt(toffset+k) != other.charAt(ooffset+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)の式の結果と同じ
NullPointerException
- prefix
が null
の場合public boolean startsWith(String prefix)
prefix
- 接頭辞true
、そうでない場合は false
。引数が空の文字列の場合や、equals(Object)
メソッドによる判定においてこの String
オブジェクトに等しい場合にも true
が返されるNullPointerException
- prefix
が null
の場合public boolean endsWith(String suffix)
suffix
- 接尾辞true
、そうでない場合は false
。引数が空の文字列の場合や、String
オブジェクトが equals(Object)
メソッドによる判定においてこの String
オブジェクトに等しい場合にも、結果は true
になるNullPointerException
- suffix
が null
の場合public int hashCode()
String
オブジェクトのハッシュコードは、int
演算を使用して次のようにして計算されます。
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
int
算術を使います。s[i]
は文字列の i 番目の文字、n
は文字列の長さ、^
はべき乗を示します。空の文字列のハッシュ値は 0 です。Object
内の hashCode
public int indexOf(int ch)
ch
を持つ文字がこの String
オブジェクトによって表される文字シーケンス内にある場合、最初に出現する位置のインデックスが返されます。つまり、次の式が true
となるような最小の k が返されます。
該当する文字がこの文字列内にない場合は、this.charAt(k) == ch
-1
が返されます。ch
- 文字-1
public int indexOf(int ch, int fromIndex)
値 ch
を持つ文字が、この String
オブジェクトによって表される文字シーケンスの fromIndex
より大きいか同じインデックス位置にある場合、該当する最初のインデックスが返されます。つまり、次の式が true となるような最小の k が返されます。
該当する文字がこの文字列内または位置(this.charAt(k) == ch) && (k >= fromIndex)
fromIndex
以降にない場合は -1
が返されます。
fromIndex
の値に対して制約はありません。負の値の場合は、0 の場合と同じ結果になり、この文字列全体が検索されます。この文字列の長さより大きい場合は、この文字列の長さに等しい場合と同じ結果になり、-1
が返されます。
ch
- 文字fromIndex
- 検索開始位置のインデックスfromIndex
と同じかこれより大きいインデックス位置にある場合は、最初に出現した位置のインデックス。文字がない場合は -1
public int lastIndexOf(int ch)
String の検索は最後の文字から開始され、先頭方向に行われます。this.charAt(k) == ch
ch
- 文字-1
public int lastIndexOf(int ch, int fromIndex)
が true となるような最大の k です。this.charAt(k) == ch) && (k <= fromIndex)
ch
- 文字fromIndex
- 検索を開始するインデックス。fromIndex
の値に対して制約はない。この文字列の長さと同じかこれより大きい場合は、この文字列の長さより 1 小さい場合と同じ結果になり、この文字列全体が検索される。負の値の場合は、-1 の場合と同じ結果になり、-1 が返されるfromIndex
と同じかこれより小さいインデックス位置に最後に出現する位置のインデックス。指定された文字がその位置より前にない場合は -1
public int indexOf(String str)
上の式がthis.startsWith(str, k)
true
となるような最小の k です。str
- 任意の文字列-1
NullPointerException
- str
が null
の場合public int indexOf(String str, int fromIndex)
上の式がthis.startsWith(str, k) && (k >= fromIndex)
true
となるような最小の k です。
fromIndex
の値に対して制約はありません。負の値の場合は、0 の場合と同じ結果になり、この文字列全体が検索されます。この文字列の長さより大きい場合は、この文字列の長さに等しい場合と同じ結果になり、-1
が返されます。
str
- 検索対象の部分文字列fromIndex
- 検索開始位置のインデックスfromIndex
より大きい開始インデックスにある部分文字列である場合は、該当する最初の部分文字列の最初の文字のインデックス。fromIndex
以降で始まる部分文字列がない場合は -1
NullPointerException
- str
が null
の場合public int lastIndexOf(String str)
this.length()
と見なされます。返されるインデックスは、
上の式がthis.startsWith(str, k)
true
となるような最大の k です。str
- 検索対象の部分文字列-1
NullPointerException
- str
が null
の場合public int lastIndexOf(String str, int fromIndex)
fromIndex
と同じか、それより小さい値である必要があります。つまり、返されるインデックスは、次の式に該当する最大の k です。
this.startsWith(str, k) && (k <= fromIndex)
str
- 検索対象の部分文字列fromIndex
- 検索開始位置のインデックス。fromIndex の値に対して制約はありません。この文字列の長さより大きい場合は、この文字列の長さに等しい場合と同じ結果になり、この文字列全体が検索される。負の値の場合は、-1 の場合と同じ結果になり、-1 が返されるfromIndex
と等しいかそれより小さいインデックスから始まる部分文字列として 1 回以上出現する場合は、該当する最後の部分文字列の最初の文字のインデックス。fromIndex
またはそれ以前で始まる部分文字列として出現しない場合は、-1
NullPointerException
- str
が null
の場合public String substring(int beginIndex)
例
"unhappy".substring(2) では "happy" が返される "Harbison".substring(3) では "bison" が返される "emptiness".substring(9) では "" (空の文字列) が返される
beginIndex
- 開始インデックス (この値を含む)IndexOutOfBoundsException
- beginIndex
が負の値の場合、あるいはこの String
オブジェクトの長さより大きい場合public String substring(int beginIndex, int endIndex)
beginIndex
から始まり、インデックス endIndex - 1
にある文字までです。したがって、部分文字列の長さは endIndex-beginIndex
になります。
例
"hamburger".substring(4, 8) では "urge" が返される "smiles".substring(1, 5) では "mile" が返される
beginIndex
- 開始インデックス (この値を含む)endIndex
- 終了インデックス (この値を含まない)IndexOutOfBoundsException
- beginIndex
が負の値である場合、endIndex
がこの String
オブジェクトの長さより大きい場合、あるいは beginIndex
が endIndex
より大きい場合public String concat(String str)
引数文字列の長さが 0
の場合は、この String
オブジェクトが返されます。そうでない場合は、この String
オブジェクトによって表される文字列と引数文字列によって表される文字列とを連結したものを表す新しい String
オブジェクトが生成されます。
例
"cares".concat("s") では "caress" が返される "to".concat("get").concat("her") では "together" が返される
str
- この String
の最後に連結される String
NullPointerException
- str
が null
の場合public String replace(char oldChar, char newChar)
oldChar
を newChar
に置換した結果生成される、新しい文字列を返します。
文字 oldChar
がこの String
オブジェクトによって表される文字列内にない場合は、この String
オブジェクトへの参照が返されます。そうでない場合は、この String
オブジェクトによって表される文字列と同じ文字列を表す、新しい String
オブジェクトが生成されます。ただし、文字列内の oldChar
はすべて newChar
に置換されます。
例
"mesquite in your cellar".replace('e', 'o') では "mosquito in your collar" が返される "the war of baronets".replace('r', 'y') では "the way of bayonets" が返される "sparring with a purple porpoise".replace('p', 't') では "starring with a turtle tortoise" が返される "JonL".replace('q', 'x') では "JonL" (変更なし) が返される
oldChar
- 以前の文字newChar
- 新しい文字oldChar
を newChar
に置換することによって生成された文字列public String toLowerCase(Locale locale)
Locale
の規則を使用して、この String
内のすべての文字を小文字に変換します。通常、文字の変換は Character.toLowerCase
を呼び出すことによって行われます。次の表に、この規則の例外を示します。
ロケールの言語コード | 大文字 | 小文字 | 説明 |
---|---|---|---|
tr (トルコ語) | \u0130 | \u0069 | 上に点が付いた大文字の I -> 小文字の i |
tr (トルコ語) | \u0049 | \u0131 | 大文字の I -> 点のない小文字の i |
locale
- このロケールの大文字小文字変換規則を使用するCharacter.toLowerCase(char)
,
toUpperCase(Locale)
public String toLowerCase()
Locale.getDefault
によって返されるデフォルトロケールの規則を使って、この String
内のすべての文字を小文字に変換します。
Character
によって定義されている toLowerCase
メソッドの呼び出しの結果、異なるバージョンの小文字を持つ文字が文字列内になかった場合は、元の文字列が返されます。
そうでない場合は、この String オブジェクトによって表される文字列と長さが同じで、この String
オブジェクトの対応する文字に Character.toLowerCase
メソッドを適用した結果とすべての文字が等しい文字列を表す、新しい String
オブジェクトが生成されます。
例
"French Fries".toLowerCase() では "french fries" が返される "".toLowerCase() では "" が返される
Character.toLowerCase(char)
,
toLowerCase(Locale)
public String toUpperCase(Locale locale)
String
内のすべての文字を大文字に変換します。通常、文字の変換は Character.toUpperCase
を呼び出すことによって行われます。次の表に、この規則の例外を示します。
ロケールの言語コード | 小文字 | 大文字 | 説明 |
---|---|---|---|
tr (トルコ語) | \u0069 | \u0130 | 小文字の i -> 上に点が付いた大文字の I |
tr (トルコ語) | \u0131 | \u0049 | 点のない小文字の i -> 小文字の I |
(すべて) | \u00df | \u0053 \u0053 | 小文字のシャープ s -> SS の 2 文字 |
locale
- このロケールの大文字小文字変換規則を使用するCharacter.toUpperCase(char)
,
toLowerCase(Locale)
public String toUpperCase()
Locale.getDefault
によって返されるデフォルトロケールの規則を使って、この String
内のすべての文字を大文字に変換します。
Character
によって定義されている toUpperCase
メソッドの呼び出しの結果、異なるバージョンの大文字を持つ文字が文字列内になかった場合は、元の文字列が返されます。
そうでない場合は、この String オブジェクトによって表される文字列と長さが同じで、この String
オブジェクトの対応する文字に Character.toUpperCase
メソッドを適用した結果とすべての文字が等しい文字列を表す、新しい String
オブジェクトが生成されます。
例
"Fahrvergnügen".toUpperCase() では "FAHRVERGNÜGEN" が返される "Visit Ljubinje!".toUpperCase() では "VISIT LJUBINJE!" が返される
Character.toUpperCase(char)
,
toUpperCase(Locale)
public String trim()
この String
オブジェクトが空の文字列を表す場合、あるいはこの String
オブジェクトによって表される文字列の最初と最後の文字のコードがいずれも '\u0020'
(スペース文字) より大きい場合は、この String
オブジェクトへの参照が返されます。
文字列内に '\u0020'
より大きいコードの文字がない場合は、空の文字列を表す新しい String
オブジェクトが生成されて返されます。
たとえば、k が文字列内の最初の文字のインデックスであり、'\u0020'
より大きいコード値を持ち、m が文字列内の最後の文字のインデックスであり、'\u0020'
より大きいコード値を持つ場合は、インデックス k にある文字で始まり、インデックス m にある文字で終る、この文字列の部分文字列を表す新しい String
オブジェクトが生成されます。つまり、これは this.substring(k, m+1)
の結果と同じです。
このメソッドは文字列の先頭と最後から空白
を切り取るために使用できます。この場合、実際には、すべての ASCII 制御文字も切り取りられます。
public String toString()
Object
内の toString
public char[] toCharArray()
public static String valueOf(Object obj)
Object
引数の文字列表現を返します。obj
- Object
null
の場合は、"null"
に等しい文字列。そうでない場合は、obj.toString()
の値Object.toString()
public static String valueOf(char[] data)
char
配列引数の文字列表現を返します。文字配列の内容がコピーされます。コピー後にその文字が変更されても、新しく作成された文字列には影響しません。data
- char
配列public static String valueOf(char[] data, int offset, int count)
char
配列引数の特定の部分配列の文字列表現を返します。
offset
引数は部分配列の最初の文字のインデックスを表します。count
引数は部分配列の長さを表します。部分配列の内容がコピーされます。コピー後に文字配列が変更されても、新しく作成された文字列には影響しません。
data
- 文字配列offset
- String
の値への初期オフセットcount
- String
の値の長さNullPointerException
- data
が null
の場合IndexOutOfBoundsException
- offset
が負の値の場合、count
が負の値の場合、あるいは offset+count
が data.length
より大きい場合public static String copyValueOf(char[] data, int offset, int count)
data
- 文字配列offset
- 部分配列の初期オフセットcount
- 部分配列の長さString
public static String copyValueOf(char[] data)
data
- 文字配列String
public static String valueOf(boolean b)
boolean
引数の文字列表現を返します。b
- boolean
true
の場合は、"true"
に等しい文字列。そうでない場合は、"false"
に等しい文字列public static String valueOf(char c)
char
引数の文字列表現を返します。c
- char
c
が格納された、新しく割り当てられた長さ 1
の文字列public static String valueOf(int i)
int
引数の文字列表現を返します。
この表現は 1 つの引数を持つ Integer.toString
メソッドによって返されるものとまったく同じです。
i
- int
int
引数の文字列表現が格納されている、新しく割り当てられた文字列Integer.toString(int, int)
public static String valueOf(long l)
long
引数の文字列表現を返します。
この表現は 1 つの引数を持つ Long.toString
メソッドによって返されるものとまったく同じです。
l
- long
long
引数の文字列表現が格納されている、新しく割り当てられた文字列Long.toString(long)
public static String valueOf(float f)
float
引数の文字列表現を返します。
この表現は 1 つの引数を持つ Float.toString
メソッドによって返されるものとまったく同じです。
f
- float
float
引数の文字列表現が格納されている、新しく割り当てられた文字列Float.toString(float)
public static String valueOf(double d)
double
引数の文字列表現を返します。
この表現は 1 つの引数を持つ Double.toString
メソッドによって返されるものとまったく同じです。
d
- double
double
引数の文字列表現が格納されている、新しく割り当てられた文字列Double.toString(double)
public String intern()
文字列のプールは、初期状態では空で、クラス String
によってプライベートに保持されます。
intern メソッドが呼び出されたときに、equals(Object)
メソッドによってこの String
オブジェクトに等しいと判定される文字列がプールにすでにあった場合は、プール内の該当する文字列が返されます。そうでない場合は、この String
オブジェクトがプールに追加され、この String
オブジェクトへの参照が返されます。
このため、任意の 2 つの文字列 s
と t
においては、s.equals(t)
が true
の場合にのみ、s.intern() == t.intern()
は true
になります。
すべてのリテラル文字列および文字列値定数式が保持されます。文字列リテラルは、「Java 言語仕様」の 3.10.5 で定義されています。
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.