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メソッドの詳しい使い方はこちらの記事で解説しているので、ぜひ確認してください。
まとめ
いかがでしたか?
今回はstartsWithメソッドとendsWithメソッドで、文字列の前方一致(接頭辞)や、後方一致(接尾辞)の判定をする方法を解説しました。startsWithメソッドは開始位置のオフセットを引数で指定できるので、ぜひ活用してくださいね。
もし、文字列の前方一致や後方一致を忘れてしまったらこの記事を確認してください!