Javaで文字列に指定した文字列が含まれるか、検索する方法について書いています。
文字列から、下記のメソッドを呼び出すことで、含まれるか確認することができます。
・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で指定文字列が含まれるときには`true`が返ってくる。含まれないときには`false`が返る。
・indexOfで指定文字列が含まれるときには「文字の位置」が返ってくる。含まれないときには「-1」が返る。
文字列に含むか確認するときには、基本的にはcontainsメソッドを使うと良いでしょう。
文字列の位置が必要なときに、indexOfメソッドを使っていくといいかと思います。
コメント