本文へスキップ
BecomeCoder

Java文法コース · 第7章 文字列と標準ライブラリ ― よく使う道具箱 · レッスン29

String の基本メソッド

ブラウザで完結

導入

文字列の長さを調べたい、一部だけ切り出したい、大文字に変換したい——文字列操作は日常的に必要になります。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());

実際に動かしてみよう

下のエディタにJavaを書いて「実行」を押すと、学習用シミュレータが System.out.println の出力を表示します(本物のJVMではなく、教材の範囲を再現した軽量エンジンです)。クラス・継承・コレクションなども動きます。Scanner で入力を読む例は「標準入力」欄に値を入れてください。本文の例を書き換えて動かしてみましょう(Stream・ラムダ・スレッド・ファイル入出力など一部の機能は対象外です)。

Java — ブラウザ内で実行(学習用シミュレータ)

Javaの教材サブセットを動かす学習用シミュレータを読み込みます(本物のJVMではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。