Javaで文字列に含むか検索する!(contains,indexOf)

Java Java

Javaで文字列に指定した文字列が含まれるか、検索する方法について書いています。
文字列から、下記のメソッドを呼び出すことで、含まれるか確認することができます。

・containsメソッド
・indexOfメソッド

載せているコードについては、OpenJDKのバージョン19で動作を確認しました。

containsメソッドを使う

文字列からcontainsメソッドを呼び出すことで、指定した文字列が対象文字列に含まれるか確認できます。
例えば、下記のように使います。

String fruits = "orange grape banana apple";

if (fruits.contains("grape")) {
    System.out.println("grapeが存在します。");
} else {
    System.out.println("grapeが存在しません。");
}

最初にfruits変数に文字列を代入しています。

次の処理で、if文の中でcontainsメソッドを使っています。
fruits文字列からcontainsメソッドを呼び出して、指定した文字列が含まれているか確認しています。

引数として渡しているのが、含まれているか確認したい文字列です。
含まれているときにはtrueが返ってきて、含まれていないときにはfalseが返ってきます。

今回は「grape」を渡しています。
含まれるのでtrueが返ってきて、if文の配下の処理が実行されます。

そのため、このプログラムを実行すると「grapeが存在します。」が出力されて処理が終わります。

indexOfメソッドを使う

文字列からindexOfメソッドを呼び出すことでも、指定した文字列が対象の文字列に含まれるか確認できます。
indexOfメソッドでは含まれているときには「文字列の位置」が返ってきます。

例えば、下記のように使います。

String fruits = "orange grape banana apple";

int index = fruits.indexOf("banana");
System.out.println(index); // 13

if (-1 < index) {
    System.out.println("bananaが存在します。");
} else {
    System.out.println("bananaが存在しません。");
}

最初に先ほどと同様にfruits変数に文字列を代入しています。

次の処理で、文字列からindexOfメソッドを呼び出しています。
引数として渡しているのは、含まれるか確認したい文字列です。
含まれるときには「文字列の位置」が返ってきます、含まれないときには「-1」が返ってきます。

今回は「banana」がfruits文字列に含まれるか確認しています。
fruits文字列に含まれているため、返ってきた文字列の位置をindex変数で受け取っています。

if文で「-1 < index」としていますが、含まれていないとindex変数が「-1」になります。
そのため「-1」より大きいと含まれていることになります。

プログラムを実行すると、下記のように出力されました。

13
bananaが存在します。

文字列の位置の「13」が返ってきて、if文の配下の処理が動いて「bananaが存在します。」が出力されました。

文字列に含むか検索する方法まとめ

今回はJavaで文字列に含むか検索する方法について書きました。
記事の内容をまとめると、下記のようになります。

・containsまたはindexOfに含むか確認したい文字列を渡す。
・containsで指定文字列が含まれるときには`true`が返ってくる。含まれないときには`false`が返る。
・indexOfで指定文字列が含まれるときには「文字の位置」が返ってくる。含まれないときには「-1」が返る。

文字列に含むか確認するときには、基本的にはcontainsメソッドを使うと良いでしょう。
文字列の位置が必要なときに、indexOfメソッドを使っていくといいかと思います。

コメント

タイトルとURLをコピーしました