|
||||
|
|
Javaコアパッケージ [Stringクラス]
|
|
|
Stringクラス
String クラスとは文字列を表すためのクラスになります。C言語などは文字列という概念がなく、文字列操作が非常にややこしかったのですが、Javaではこの Stringクラスにより、文字列の操作を簡単に行うことが出来ます。
Javaでは文字をダブルクォーテーションで囲んだリテラル文字列は、Stringクラスのインスタンスになります。また、文字列は「+」演算子で他の文字列とを連結させることも出来ます。( ただし、文字列の連結は StringBuffer クラスとその append メソッドを使って実装されているので、連結する場合は StringBufferクラスを使用したほうがより高速です ) 文字列変数「str」を宣言とともに初期化してみます。
String str = "山田太郎"; System.out.println(str); [ 表示 ]
山田太郎 こんどは文字列を二つ宣言して、それらを連結させてみます。
String str1 = "東京都"; String str2 = "渋谷区"; String str3 = str1 + str2; System.out.println(str3); [ 表示 ]
東京都渋谷区 エスケープシーケンス
Perlや ASPで「\」の後に文字を指定することで、改行やタブといった特殊な文字を表現しました。これらはエスケープシーケンスと言われ、Javaでも以下のようなエスケープシーケンスが定義されています。
String str1 = "Java SE\n"; String str2 = "Java EE\n"; String str3 = "Java ME"; String str4 = str1 + str2 + str3; System.out.println(str4); [ 表示 ]
Java SE Java EE Java ME 「\n」を指定することで、上記のように改行されて出力されます。 Stringクラスの主なメソッド
charAt
public char charAt(int index) ;
指定されたインデックス位置にある文字を返します。インデックスは、0 〜 length() - 1 の範囲になります。配列のインデックス付けの場合と同じように、文字列の最初の文字のインデックスは 0、次の文字のインデックスは 1 と続きます。 [ Sample ]
System.out.println("あいうえお".charAt(2)); // 「う」を表示
String型の変数ではないのに「charAt」メソッドを呼び出しています。これは上記で説明した「Javaでは文字をダブルクォーテーションで囲んだリテラル文字列は、Stringクラスのインスタンスになります。」によって有効になります。 concat
public String concat(String str)
メソッドを呼び出す Stringオブジェクトで表す文字列と、引数で指定した Stringオブジェクトで表す文字列を連結して、新たな文字列のインスタンスを生成しそれを戻り値として返します。 [ Sample ]
String str1 = "東京都"; String str2 = "渋谷区"; String str3 = str1.concat(str2); System.out.println(str3); // 「東京都渋谷区」を表示 equals
public boolean equals(Object anObject)
ASPでは文字列の比較に比較演算子「 = 」を使用していました。 Javaでは同様の比較演算子として「 == 」が用意されていますが、文字列の比較に「 == 」演算子は使用できません。何故かというと「 == 」演算子を使用した場合、同じインスタンスであるかという比較を行うため、異なるインスタンスで同じ文字列を表す場合には「false」が返されてしまうためです。 文字列の比較には Stringクラスの equalsメソッドを使用する。覚えておきましょう。 [ Sample ]
String str1 = new String("東京都"); String str2 = new String("東京都"); //別のインスタンスなので偽となる if(str1 == str2){ System.out.println("「==」演算子:真"); } else { System.out.println("「==」演算子:偽"); } //表す文字列が等しいので真となる if(str1.equals(str2) == true){ System.out.println("equalsメソッド:真"); }else{ System.out.println("equalsメソッド:偽"); } length
public int length()
文字列の文字数を返す。半角文字も全角文字も同じ1文字として扱われます。 [ Sample ]
String strVal = "あいうえお12345"; System.out.println(strVal.length()); // 「10」を表示 replace
public String replace(char oldChar, char newChar)
第一引数で渡した文字が見つからない場合は、このオブジェクトへの参照を返し、見つかった場合は指定した文字で置き換えを行います。ちなみに oldCharは全て newCharへ置き換えられます。 [ Sample ]
String str1 = "渋谷区"; String str2 = str1.replace('区','村'); System.out.println(str2); // 「渋谷村」を表示 replaceAll
public String replaceAll(String regex, String newString)
[ Sample ]
String str1 = "渋谷区"; String str2 = str1.replaceAll("渋谷","新宿"); System.out.println(str2); // 「新宿区」を表示 split
public String[] split(String regex, int limit)
[ Sample ]
String str1 = "渋谷区、品川区、新宿区、中央区、港区"; String[] arr = str1.split("、",0); System.out.println(arr[0]); // 「渋谷区」を表示 System.out.println(arr[1]); // 「品川区」を表示 System.out.println(arr[2]); // 「新宿区」を表示 System.out.println(arr[3]); // 「中央区」を表示 System.out.println(arr[4]); // 「港区」を表示 toLowerCase
public String toLowerCase()
アルファベットの大文字だけが小文字に変換されます。文字列にそれ以外の文字が含まれていてもアルファベット大文字以外の文字は影響を受けません。 [ Sample ]
String str1 = "ビタミンCは体に良いらしい。"; System.out.println(str1.toLowerCase()); // 「ビタミンcは体に良いらしい。」を表示 toUpperCase
public String toUpperCase()
アルファベットの大文字だけが小文字に変換されます。文字列にそれ以外の文字が含まれていてもアルファベット小文字以外の文字は影響を受けません。 ※Unicode 仕様の文字データに大きく依存しているため、結果の長さが異なる場合があります。 [ Sample ]
String str1 = "Java SE"; System.out.println(str1.toUpperCase()); // 「JAVA SE」を表示 valueOf
public static String valueOf(param)
valueOfメソッドは引数で与えられた値の文字列表現のインスタンスを生成して返します。 たとえば、int型の変数を String型へ代入したい場合、暗黙的なキャストが行われないため、「=」演算子による代入は行えません。 このような場合、valueOfメソッドを使用して int型変数の文字列表現を生成することで Stringクラスへ代入することが可能になります。 [ Sample ]
int intVal = 10; String strVal = ""; strVal = intVal; // キャストが行えないためコンパイルエラーとなる strVal = String.valueOf(intVal); |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||