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

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

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

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

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など)
更新日 : 2019年5月28日

まとめ

いかがでしたか?

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

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

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

中沢 丈

中沢 丈

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

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