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

まとめ

いかがでしたか?

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

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

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

中沢 丈

中沢 丈

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

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

おすすめコンテンツ

いまならレッスン期間が2週間延長!この秋、プログラミングを学ぼう

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー