Java入門 #5 - 文字列の基本操作(String)

入門 | 10分 で読める | 2026.05.02

公式ドキュメント

今回やること

Javaでは文字列をStringで扱います。ADA-2026という商品コードを使い、文字列が変わらない性質と、3つの基本メソッドを確認します。

前提: Java入門 #4 - 演算子までを終え、変数と==の意味を理解していること。

操作書き方この例の結果
長さcode.length()8
内容比較prefix.equals("ADA")true
部分取得code.substring(0, 3)ADA

Stringを作る

文字列リテラルはダブルクォートで囲みます。

String code = "ADA-2026";

1文字のcharはシングルクォートですが、String"..."です。Stringはクラスですが、new String(...)を書かずにリテラルから作るのが基本です。

Stringは不変

Stringはimmutable(不変)で、作成後にそのオブジェクトの内容を変更しません。結合すると新しい文字列が作られます。

String prefix = "ADA";
String code = prefix + "-2026";

この後もprefix"ADA"のままです。結合結果を使いたい時は、codeのような変数で新しい文字列を受け取ります。

prefix → "ADA"
code   → "ADA-2026"

lengthで長さを調べる

int length = code.length();

length()はメソッドなので丸括弧を付けます。今回の英数字だけの商品コードは8文字です。絵文字などのUnicodeを利用者が見る「1文字」と数える処理は別の注意が必要ですが、この入門では広げません。

equalsで内容を比べる

String expected = "ADA-2026";
boolean same = code.equals(expected);

Stringの内容比較にはequalsを使います。==は2つの変数が同じオブジェクトを参照しているかを見るため、文字列内容の比較には使いません。

大文字・小文字を区別せず比較するequalsIgnoreCaseもありますが、商品コードの仕様で区別するかを決めてから選びます。

substringで一部を取り出す

String category = code.substring(0, 3);

開始index 0は含み、終了index 3は含みません。そのためindex 0、1、2のADAが返ります。

 A D A - 2 0 2 6
 0 1 2 3 4 5 6 7
 └───┘ substring(0, 3)

範囲は0 <= start <= end <= lengthにします。範囲外はStringIndexOutOfBoundsExceptionです。

完成コードを動かす

StringDemo.javaとして保存します。

public class StringDemo {
    public static void main(String[] args) {
        String prefix = "ADA";
        String code = prefix + "-2026";

        int length = code.length();
        String category = code.substring(0, 3);
        boolean validCategory = category.equals("ADA");

        System.out.println("元のprefix: " + prefix);
        System.out.println("商品コード: " + code);
        System.out.println("長さ: " + length);
        System.out.println("カテゴリ: " + category);
        System.out.println("カテゴリ一致: " + validCategory);
    }
}
javac StringDemo.java
java StringDemo

成功確認

元のprefix: ADA
商品コード: ADA-2026
長さ: 8
カテゴリ: ADA
カテゴリ一致: true

結合後もprefixが変わらず、取り出したcategoryequalsで比較できれば成功です。

よくあるつまずき

Stringを==で比較する

内容が同じでも期待どおりにならない場合があります。文字列の内容はequalsで比較します。

lengthに丸括弧を付けない

Stringはlength()です。後で学ぶ配列の長さはlengthで、書き方が異なります。

substringの終了位置も含むと思う

substring(0, 3)はindex 3を含みません。開始は含む、終了は含まないと覚えます。

練習

予約番号TOKYO-1234を使い、全体の長さ、substring(0, 5)で取り出した地域、equals("TOKYO")の結果を表示してください。

次のステップ

Java入門 #6 - if-elseで、文字列や数値の比較結果から処理を分けます。

参考リソース

← 一覧に戻る
PR
PR
PR
PR