Javaで文字列を検索する7つの方法まとめ【サンプルコードあり】
  • facebookページ
  • twitterページ
  • 2019.12.19

    Javaで文字列を検索する7つの方法まとめ【サンプルコードあり】

    Javaの学習や実装をしているときに「特定の文字列が含まれているか知りたい」「完全一致しているか確認したい」という場合がありませんか?

    この記事では、Javaで文字列を検索するさまざまな方法をまとめて解説します。

    目的に合わせた手法で、文字列の検索ができるようになってください!

    javaで文字列を検索する7つの方法

    Javaで文字列を検索する方法には、以下の7通りがあります。

    1. indexOfメソッドで文字列を検索
    2. lastIndexOfメソッドで後方から文字列を検索
    3. containsメソッドで文字列を検索
    4. matchesメソッドで正規表現を使って文字列を検索
    5. startsWithメソッドで文字列の前方一致を検索
    6. endsWithメソッドで文字列の後方一致を検索
    7. equalsメソッドで文字列が完全一致しているものを検索

    ひとつずつ解説しますね。

    1.indexOfメソッドで文字列を検索

    ある文字列の中に指定した文字列が含まれているかを確認するには、indexOfメソッドが利用できます。

    indexOfメソッドには、以下の4通りの使い方が可能です。

    1. indexOf(int ch)
    2. indexOf(int ch, int fromIndex)
    3. indexOf(String str)
    4. indexOf(String str, int fromIndex)

    indexOfメソッドはint型のメソッドのため、先頭を0として数えた場合の要素数(番号)を返します。

    また、検索用法は「char型」と「String型」の2種類です。

    第二引数に「int fromIndex」を指定すると、指定した要素数以降から指定した文字列の検索をしてくれます。

    これら4通りの使い方で、実際に文字列を検索するサンプルコードを見てみましょう。

    実行結果↓

    fromIndexを指定した場合とそうでない場合で、検索結果が異なっているのがわかります。

    indexOfメソッドの使い方は、以下のJavaリファレンスからも確認可能です。

    https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html

    2.lastIndexOfメソッドで後方から文字列を検索

    lastIndexOfメソッドを利用すれば、文字列を末尾から検索するのも可能です。

    サンプルコードで動きを確認してみましょう。

    実行結果↓

    indexOfとは異なり、末尾から検索できています。

    後ろから検索をかけたい場合に有効活用しましょう!

    3.containsメソッドで文字列を検索

    containsはboolean型のメソッドで、特定の文字列が含まれているかを「true」または「false」を返して確認できます。

    Javaのbooleanの使い方については、以下の記事で詳しく解説していますので参考までに。

    【関連記事】
    ▶︎【初心者】Javaにおけるboolean(Boolean)の使い方【入門】

    containsメソッドの使い方も、サンプルコードで確認しましょう。

    実行結果↓

    検索した文字列が含まれていた場合の処理が動いているのがわかります。

    4.matchesメソッドで正規表現を使って文字列を検索

    matchesメソッドは、containsメソッドと同じように特定の文字列が含まれているかを検索できます。

    matchesメソッドは「正規表現」を使って文字列を調べるのが特徴です。

    文字列のパターンから検索できるため、containsメソッドよりも幅広く検索をかけられます。

    Javaの正規表現については、以下の記事で詳しく解説していますので参考までに。

    【関連記事】
    ▶︎初心者でもわかる!Java正規表現の書き方【サンプルあり】

    matchesメソッドを用いたサンプルコードを見ていきましょう。

    matchesメソッドに「.*ポテ.*」を指定し、文字列に「ポテ」が含まれているかを確認します。

    上記のプログラムを実行すると、以下の実行結果を得られます。

    実行結果↓

    5.startsWithメソッドで文字列の前方一致を検索

    startsWithメソッドを使うと、文字列が前方一致しているかを検索できます。

    startsWithメソッドを用いたサンプルコードを見ていきましょう。

    実行結果↓

    6.endsWithメソッドで文字列の後方一致を検索

    endsWithメソッドを使うと、文字列が後方一致しているかを検索できます。

    startsWithメソッドとセットで覚えておくとよいでしょう。

    endsWithメソッドを用いたサンプルコードを見ていきます。

    実行結果↓

    7.equalsメソッドで文字列が完全一致しているものを検索

    equalsメソッドを使うと、文字列が完全一致しているかを検索できます。

    今までの検索方法の中で、一番限定的な検索方法です。

    equalsメソッドを用いたサンプルコードを見ていきます。

    実行結果↓

    文字列検索で処理速度が高速なのはどれ?

    文字列の検索で、処理が高速な検索方法はどれなのでしょうか?

    結論を言うとどの検索方法でも極端に速い、遅いということはありません。「文字列の一致」を調べる検索方法は比較的高速に処理します。

    以下のコードで、処理速度を測ることが可能です。

    実行結果↓

    「startsWithメソッド」「equalsメソッド」といった文字列の一致を見る検索方法は、処理が高速なのがわかります。

    一方、matchメソッドのように文字列が含まれているかを見る検索方法は、文字列の一致を見る検索方法に比べて遅くなっていますね。

    しかし、それほど極端に速度の違いは出ていません。

    まとめ

    Javaで文字列を検索する方法をまとめて紹介しました。

    文字列の検索方法は、用途によってさまざまな手法があります。

    自分が検索したい方法はどのメソッドを用いればよいのか、ぜひこの記事を参考に実装してみてください。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE