appendix> lang> String TOPUPPREVNEXT

java.lang.String

【主な機能】

String クラスは、文字列を処理するためのクラスです。 文字列定数(引用符でくくられた文字の列、文字列リテラルといいます)を代入したり、 文字列を連結したり、ラベルなどの他のオブジェクトに設定したりします。 文字列どうしを比較するメソッド equals や 他のクラスから文字列に変換するメソッド String.valueOf がよく使われます。
文字列の中身を、入れ替えたり、一部を削除したり、 別の文字列を挿入したりするためには、 StringBuffer クラスが用意されています。

通常のクラスと違う点があります。

【文字列の比較】

2つの文字列 x と y が等しいかどうかは、
x . equals ( y )
で判定します。

演算子 == は、同一オブジェクトか否かを判定するために用いられます。 同じ文字リテラルに対しては、 == が成立します。【例1】参照。
演算子   >   <   >=   <=   は使えません。 メソッド compareTo と compareToIgnoreCase が用意されています。

2つの文字列の大小関係は、文字列の左から1文字づつ比較されます。

左から順にしらべ、異なる文字が見つかれば、その文字の大小で判定されます。 一方の文字列が、他方の文字列の左側と等しい場合、短い方の文字列が小さいと判定されます。

文字の大小は、Unicode で判定されます。

【主なコンストラクタ】

コンストラクタ機能
String ( " ... " ) 新しく文字列 ... を生成する。
String ( char[] value ) 文字配列 value を文字列にする。
String ( StringBuffer buffer ) buffer に含まれている文字を文字列にする。

通常は、文字リテラルをつかい、コンストラクタはあまり使用しません。

また、文字配列や文字列バッファから文字列を生成する場合でも、 メソッド String.valueOf で十分です。

【よく使われるメソッド】

メソッド機能
int length ( ) この文字列の文字数を返します。
boolean equals (String y ) この文字列と y を比較します。
x.equals (y) の値は、 x と y が文字列として等しい場合 true、 そうでなければ false 。
int compareTo (String y ) この文字列と y を Unicode の文字列として比較します。
x.compareTo (y) の値は、 x が y より小さい時 負の整数 、 x と y が等しいとき時 0、 x が y より大きいとき時 正の整数。
int compareToIgnoreCase (String y ) この文字列と y を大文字と小文字を区別せずに比較します。
x.compareToIgnoreCase (y) の値は、 x が y より小さい時 負の整数 、 x と y が等しいとき時 0、 x が y より大きいとき時 正の整数。
boolean startsWith ( String prefix ) この文字列が、prefix で始まっている場合 true、 そうでない場合 false
boolean endsWith (String suffix ) この文字列の最後が、suffix で終わっている場合 true 、 そうでない場合 false
char charAt (int i ) この文字列の i 番目の文字。 i は 0 から length()-1 の整数。
int indexOf (int char ) 文字 char が最初に現れた文字位置。
int indexOf (int char , int from ) from 文字目以降で最初に現れた char の文字位置
int indexOf (String s ) 文字列 s の最初の文字位置
int indexOf (String s , int from ) from 文字目以降に現れる文字列 s の文字位置
int lastIndexOf ( int ch ) 最後に現れた ch の文字位置
int lastIndexOf ( String s ) 最後に現れた s の文字位置
String replace ( char oc , char nc ) 文字 ocnc で置き換えた新しい文字列を返します。
String substring ( int from ) この文字列の from 文字目以降を新しい文字列とします。 文字位置は 0 から数えます。
String substring ( int beg , int end ) この文字列の beg 文字目から end 文字目までを抜き出します。
String trim ( ) この文字列の前後の空白を削ります。
String toUpperCase ( ) この文字列を大文字に変換します。
String toLowerCase ( ) この文字列を小文字に変換します。
void getChars (
int beg , int end ,
char [ ] dest , int pos )
この文字列の beg 文字目から end 文字目までを 文字配列 destpos 以降にコピーします。
char [ ] toCharArray ( ) この文字列を文字配列に変換します。
static String valueOf (int i ) i を文字列に変換します。
static String valueOf (long l ) l を文字列に変換します。
static String valueOf (char c ) c を文字列に変換します。
static String valueOf (char[ ] data ) 文字配列 data を文字列に変換します。
static String valueOf (char[ ] data ,
int offset , int count )
文字配列 dataoffset 番目から count 文字分をを文字列に変換します。
static String valueOf (double d ) d を文字列に変換します。
static String valueOf (float f ) f を文字列に変換します。
static String valueOf (boolean b ) b を文字列に変換します。
static String valueOf (Object obj ) obj を文字列に変換します。

【例1】

比較演算 == については注意が必要です。 参照型の変数を == で比較すると、 同一のオブジェクトを参照しているかを判定します。
文字列として見た目が同じかどうかを判定するためには、 メソッド equals を使用しましょう。 同じ文字列リテラルの場合、== が成り立ちます。

検証プログラム StringLiteral.java

実行結果

【例2】

文字列と文字配列の間の変換に toCharArrayString.valueOf を使用してみました。

プログラム Palindrome.java

実行結果






更新日:2004-07-01