【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など)
更新日 : 2021年9月8日

まとめ

いかがでしたか?

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

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

\業界最安級/
月額2,980円のプログラミングスクール

✔ 業界最安値の月定額2,980円
✔ 「Q&A掲示板」で平均30分以内に回答がもらえる
✔ 月に一度の「オンライン相談」で悩みを解決
✔ 教材の数は30種類以上
✔ 入会金不要+いつでも退会OK

公式サイトはこちら

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

連絡先はこちらです。
[email protected]

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

SAMURAI ENGINEER Pro

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

詳細はこちら

SAMURAI TERAKOYA

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

詳細はこちら

SAMURAI ENGINEER Freelance

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

詳細はこちら
Close