導入
文字列の長さを調べたい、一部だけ切り出したい、大文字に変換したい——文字列操作は日常的に必要になります。String にはそのための便利なメソッドがたくさん用意されています。
説明
public class Main {
public static void main(String[] args) {
String s = "Hello, Java!";
System.out.println(s.length()); // 文字数 → 12
System.out.println(s.charAt(0)); // 0番目の1文字 → H
System.out.println(s.substring(7)); // 7文字目以降を切り出す → Java!
System.out.println(s.substring(0, 5)); // 0〜4文字目を切り出す → Hello
System.out.println(s.toUpperCase()); // 大文字に → HELLO, JAVA!
System.out.println(s.indexOf("Java")); // "Java" が何文字目から始まるか → 7
System.out.println(s.equals("hello, java!")); // 大文字小文字を区別して比較 → false
System.out.println(s.equalsIgnoreCase("hello, java!")); // 区別せず比較 → true
}
}
length()… 文字数。配列の.length(フィールド)と違い、Stringでは()の付くメソッド なので注意しましょう。charAt(i)…i番目(0始まり)の1文字をcharで取得します。substring(開始)/substring(開始, 終了)… 一部を切り出します。終了は「その番号の文字を含まない」点に注意(substring(0, 5)は0〜4文字目まで)。toUpperCase()/toLowerCase()… 大文字/小文字に変換した新しい文字列を返します(元のs自体は変わりません)。indexOf(文字列)… 指定した文字列が最初に現れる位置。見つからなければ-1。equals(...)… 文字列の中身が同じか比較します。==は使わないのが鉄則です(==は「同じインスタンスかどうか」を見るため、期待通りに動かないことがあります)。equalsIgnoreCase(...)… 大文字・小文字を区別せずに比較します。
やってみよう
下のエディタで s の中身を変え、各メソッドの結果がどう変わるか確かめましょう。s == "Hello, Java!" のように == で比較するとどうなるかも試してみてください。
演習
String name = "Become-Coder"; の文字数と、大文字に変換した文字列を、この順で2行に表示してください(結果は 12 の次に BECOME-CODER)。
ヒント1を見る
System.out.println(name.length()); で文字数を表示します。
ヒント2を見る
続けて System.out.println(name.toUpperCase());。