スライドショー

【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

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

中沢 丈

中沢 丈

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

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

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説