【速習Java】Stringのcontainsで文字列を含むか知る方法

JavaのStringを扱う上で、文字列の中に特定の文字列が含まれているか、確認するためにはcontainsメソッドを使うと便利です。

この記事では、文字列から特定の文字列を検索するためのcontainsメソッドについて、以下の内容で解説していきます。

  • 【基礎】文字列検索でのcontainsの使い方
  • 【基礎】文字列の特定の一部を取得する方法
  • 【発展】containsとindexOfの処理速度の比較

containsメソッドについて、わかりやすく解説していますのでぜひ参考にしてください!

文字列検索でのcontainsの使い方

containsメソッドは、文字列に特定の要素が含まれているか確認します。

指定された文字列が含まれている場合に限り、trueを返します。

以下にcontainsメソッドを使用したサンプルコードを記述します。

実行結果:

このサンプルコードでは、String型を宣言して文字列”appleorangemelon”を格納しています。

次にcontainsメソッドを使用して、文字列の中に”orange”が含まれているか、確認しています。指定した文字列が含まれている場合、containsメソッドはtrueを返しますので、if文の処理が実行されます。

なお、containsメソッドはString型の変数を指定することもできます。

また、containsメソッドと同じように文字列の中に指定した文字列が含まれているか知る方法としてindexOfメソッドを使う場合があります。

indexOfメソッドは第1引数に文字列を指定し、その指定した文字列が最初に登場した位置をインデックス番号で返します。

第2引数で、検索開始位置を指定することもできます。指定した文字列がみつからない場合は-1を返します。containsメソッドとindexOfメソッドは戻り値が違いますので、必要に応じて使い分けるようにしましょう!

文字列の特定の一部を取得する方法

実際の実務では、文字列の中から特定の値が存在するか調べて、特定の文字列のみ取得したいといった状況となる場合もありえます。

特定の文字列のみ取得する場合の処理のサンプル(ここでは”orange”を取り出す)を、以下に記述します。

実行結果:

このサンプルコードでは、まずcontainsメソッドで指定した文字列が存在するか確認しています。

指定した文字列が存在したら、indexOfメソッドで指定した文字列が何番目のindexから始まるか調べています。

substringメソッドで文字列の一部分を取り出すために、開始インデックスと終了インデックスを指定して、取得したい文字列のみを取り出しています。

containsとindexOfの処理速度の比較

気になるcontainsメソッドベンチマークはいかほどでしょうか?

containsメソッドの処理速度を、indexOfメソッドと比較してみました。ナノ秒単位で処理を比較するサンプルを以下に記述します。

実行結果:

このサンプルコードでは、String型の配列に100回値を設定しています。設定したString配列を元に、containsとindexOfでそれぞれ100回検索した場合の処理速度を比較しています。

実行結果から分かるとおり誤差はあるものの、どちらかが極端に早いというわけではありませんでした。

indexOfについてもっと詳しく知りたい方へ

ここまでcontainsメソッドの使い方について、indexOfメソッドと比較して説明してきました。

indexOfメソッドについて、こちらで詳しく解説していますので、ぜひ参考にしてくださいね。

【3分Java入門】Stringで文字列が含まれているか知る方法(indexOf)
更新日 : 2017年6月7日

Stringについてもっと詳しく知りたい方へ

Stringのさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

【Java String】7つの基本的な使い方で文字列操作を理解しよう
更新日 : 2019年5月7日

まとめ

ここでは、Stringの文字列の中から指定した文字列を検索するcontainsメソッドのさまざまな使用方法を説明しました。

Stringの文字列を検索するためのメソッドはいくつか存在しますが、それぞれ用途が異なります

そのため、各メソッドの役割はしっかりと覚えておく必要があるでしょう。

もし、containsメソッドの使用方法を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

侍テック編集部

侍テック編集部

おすすめコンテンツ

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

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