【Java入門】startsWith、endsWithで文字列の始まりと終わりを判定

Javaには文字列の始まりや終わりを判定するためのstartsWithメソッドとendsWithメソッドがあります。この記事では、startsWith、endsWithについて以下の内容で解説していきます。

  • 【基礎】startsWith、endsWithとは
  • 【基礎】startsWithの使い方
  • 【基礎】endsWithの使い方
  • 【発展】引数offsetで検索開始位置を指定して判定する方法
  • 【発展】正規表現を使った検索をmatchesで行う方法

今回はこれらの方法を覚えるために、startsWithメソッドとendsWithメソッドの使い方をわかりやすく解説します!

なお、Javaの記事については、こちらにまとめています。

startsWith、endsWithとは

startsWithメソッドは、指定した文字列の始まりの文字列を判定するために使います。startsWithメソッドを使った検索方法を、前方一致(接頭辞)などと呼びます。

endsWithメソッドは、指定した文字列の終わりの文字列を判定するために使います。endsWithメソッドを使った検索方法を、後方一致(接尾辞)などと呼びます。


【何から学べばいいかわからない…そんな悩みを解決します!】

完全無料ですぐわかる「プログラミング学習プラン診断」

・適性にあわせて学習プランを診断
・完全無料で気軽に診断できる
・学習の悩みもまるっと解決

さっそく診断してみる

startsWithの使い方

startsWithで始まりの文字列を判定する

ここでは、startsWithメソッドの使い方を解説します。startsWithメソッドは引数に検索する文字列を指定します。startsWithメソッドで始まりの文字列を判定する方法を次のプログラムで確認してみましょう。

public class Main {

    public static void main(String[] args) {

        String str = "SamuraiEngineerJuku";

        if (str.startsWith("Samurai")) {
            System.out.println("前方一致しました");
        } else {
            System.out.println("前方一致しませんでした");
        }
    }
}

実行結果:

前方一致しました

このようにしてstartsWithメソッドで文字列の前方一致の判定ができました。

引数offsetで検索開始位置を指定して判定する

startsWithメソッドは、第2引数に検索開始位置を指定することで、そこからの前方一致の判定をすることができます。第2引数にoffsetを指定して、そこからの前方一致の判定をする方法を次のプログラムで確認してみましょう。

public class Main {

    public static void main(String[] args) {

        String str = "SamuraiEngineerJuku";

        if (str.startsWith("Engineer", 7)) {
            System.out.println("前方一致しました");
        } else {
            System.out.println("前方一致しませんでした");
        }
    }
}

実行結果:

前方一致しました

このようにして、検索開始位置を指定して、そこからの前方一致の判定をすることができました。

endsWithで終わりの文字列を判定する

ここでは、endsWithメソッドの使い方を解説します。endsWithメソッドは引数に検索する文字列を指定します。endsWithメソッドで終わりの文字列を判定する方法を次のプログラムで確認してみましょう。

public class Main {

    public static void main(String[] args) {

        String str = "SamuraiEngineerJuku";

        if (str.endsWith("Juku")) {
            System.out.println("後方一致しました");
        } else {
            System.out.println("後方一致しませんでした");
        }
    }
}

実行結果:

後方一致しました

このようにしてendsWithメソッドで文字列の後方一致の判定ができました。


【何から学べばいいかわからない…そんな悩みを解決します!】

完全無料ですぐわかる「プログラミング学習プラン診断」

・適性にあわせて学習プランを診断
・完全無料で気軽に診断できる
・学習の悩みもまるっと解決

さっそく診断してみる

正規表現を使った検索をmatchesで行う方法

正規表現を使った検索を行うには、matchesメソッドを使う必要があります。次のプログラムでは、指定した文字列のEngineerの前後に、正規表現の「”.*”」を指定することによって前後の文字列に関係なく、Engineerが含まれているかどうかを判定しています。

正規表現を使った検索方法を次のプログラムで確認してみましょう。

public class Main {

    public static void main(String[] args) {

        String str = "SamuraiEngineerJuku";

        if (str.matches(".*Engineer.*")) {
            System.out.println("一致しました");
        } else {
            System.out.println("一致しませんでした");
        }
    }
}

実行結果:

一致しました

このようにして、正規表現を使った検索をmatchesメソッドで行うことができました。matchesメソッドの詳しい使い方はこちらの記事で解説しているので、ぜひ確認してください。

Javaで文字列を検索する方法(matches・indexOf・equalsなど)
更新日:2023年3月21日

まとめ

いかがでしたか?

今回はstartsWithメソッドとendsWithメソッドで、文字列の前方一致(接頭辞)や、後方一致(接尾辞)の判定をする方法を解説しました。startsWithメソッドは開始位置のオフセットを引数で指定できるので、ぜひ活用してくださいね。

もし、文字列の前方一致や後方一致を忘れてしまったらこの記事を確認してください!

プログラミング学習中、
誰かへ相談したいことはありませんか?

SAMURAI TERAKOYA

プログラミングはエラーの連続。作業を進めるなかで誰かに教えてほしい場面は多いですよね。

そんな悩みを解決できるのが、侍テラコヤです。登録無料で始められて、現役エンジニアとオンラインで相談できるほか、回答率100%のQA掲示版でプログラミングに関する悩みを解決します!

気になる方はぜひ詳細をご覧ください。

→侍テラコヤの詳細をみる

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
ntakeshi@sejuku.net

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close