MENU
👇しうが厳選・おすすめのブログ!
しう
【テニス好きブロガー】 
テニス、読書が好きです。IT企業で学んだこともブログに書いています。高校教諭(テニス部顧問)→IT企業。テニス歴12年。人生をより有意義なものにしたいと思い、ブログを書き始めました。Twitterもしています。
アーカイブ

【Java】containsメソッドでの判定方法(nullの注意点も)

Javaエンジニアとして働いていると文字列などに特定の文字が含まれているか判断したい時があります。その時に役に立つ関数がcontainsメソッドで実際の開発現場でも利用します。

今回はJavaでのcontainsメソッドの使い方を触れていく中でnullのケースも含めてご紹介します。文字列、リスト、nullの3パターンを紹介するので参考にしてください。

 

しう

nullに対する意識がないとエラーの原因になるから、気をつけるんやで!

記事の信頼性:エンジニア3年目の「しう」がJavaのcontainsメソッドについて記事を書いています。

目次

containsメソッドとは?【Java】

JavaではStringクラスでcontainsメソッドが用意されており、利用することができます。利用時には引数にString型を指定して、戻り値はboolean型です。引数に指定した文字列が含まれている場合はtrueを返し、含まれていない場合はfalseを返します。

プログラミングの学習時には公式サイトで1次情報を確認することも大切なので、Oracleの公式サイト(String型)も確認してください。次の「containsメソッドの使い方」で具体的な利用方法を見ていきます。

containsメソッドの使い方

containsメソッドの使い方について下記の3パターンについて見ていきます。文字列以外のパターンもあり注意点もあるため気をつけていきましょう。

  • 文字列の場合
  • リストの場合
  • 空文字、nullの場合

文字列の場合

文字列の場合のcontainsメソッドの使い方についてです。実際の使い方としては次のような利用方法となります。wordに大文字のPが含まれているため、実行結果でtrueとなっています。

var word = "Programming";
System.out.println("Pの検索結果:" + word.contains("P"));
// Pの検索結果:true

 

大文字小文字の区別はしているため、次のようにcontains(“p”)の場合はfalseとなります。

var word = "Programming";
System.out.println("pの検索結果:" + word.contains("p"));
// pの検索結果:false

 

containsメソッドでは引数の文字列は2文字以上でも利用できます。実行した場合は次のようになります。”Programming”という単語に”Pr”は含まれているのでtrueが返りますが、”Pa”は含まれていないため、contains(“Pa”)を利用した場合はfalseが返ってきます。

var word = "Programming";
System.out.println("Prの検索結果:" + word.contains("Pr"));
// Prの検索結果:true

System.out.println("Paの検索結果:" + word.contains("Pa"));
// Paの検索結果:false

リストの場合

リストでcontainsメソッドを利用する場合は下記のようになります。文字列の時と同様、指定した文字列が含まれていればtrue、含まれていなければfalseを返します。

var list = new ArrayList<String>();

list.add("あいうえお");
list.add("かきくけこ");
list.add("さしすせそ");

System.out.println("かきくけこの検索結果:" + list.contains("かきくけこ"));
// かきくけこの検索結果:true

System.out.println("たちつてとの検索結果:" + list.contains("たちつてと"));
// たちつてとの検索結果:false

 

ただ、フレームワークの1つであるSpringではCollectionUtilsクラスにcontainsメソッドが用意されており、そちらを利用するとnullチェックをしてくれるためCollectionUtilsクラスのcontainsメソッドを利用する方がいいです。Spring公式サイトのCollectionUtils実際に用意されているメソッド内のコード(GitHub)も参考になります。

しう

すでに用意されているものを利用することが開発効率アップの近道やで!

空文字、nullの場合

containsメソッドの引数にnullや空文字を指定した場合も見ていきます。nullが関係してくるとエラーが起きやすく、バグの原因になるため気をつけましょう。下記の例はstrEmpty(空文字)に空文字が含まれているかをcontainsメソッドで判定しています。空文字の判定はStringクラスで用意されているisEmptyメソッドを利用する方法を推奨しているので、そちらを利用しましょう。

String strEmpty = "";

System.out.println(strEmpty.contains(""));
//実行結果:true

System.out.println(strEmpty.isEmpty());
//実行結果:true

 

下記の例では、nullに空文字が含まれているか、nullにnullが含まれているかをcontainsメソッドで確認していますが、どちらもNullPointerExceptionのエラーとなっています。

String strNull = null;

System.out.println(strNull.contains(""));
//実行結果:NullPointerException

System.out.println(strNull.contains(null));
//実行結果:NullPointerException

 

nullに対してはcontainsメソッドを利用することはできません。そのため、nullが入る可能性がある文字列でcontainsメソッドを利用する場合は事前にチェックをする必要があります。筆者の「しう」が開発現場で開発をしている時は、ObjectsクラスのisNullメソッドでnullの判定をしていたり、Optionalクラスを利用したりしていました。

まとめ

いかがでしたか?今回は、次の順番でJavaのcontainsメソッドについて記載をしました。

  • containsメソッドとは?【Java】
  • containsメソッドの使い方
    • 文字列の場合
    • リストの場合
    • 空文字、nullの場合

 

特にリストの場合はSpringのCollectionUtilsクラスでcontainsメソッドが用意されていたり、Javaで起こりがちなnullに関してはObjectsクラスのisNullメソッドやOptionalクラスを利用することでnullのエラーを防ぎやすくなったりします。この記事を参考にcontainsメソッドの理解が進めばいいなと思います。

 

☟あわせて読みたい 「しう」のオススメブログ

あわせて読みたい
Udemy Javaのおすすめ講座【初心者向け・6選】 今回はUdemyでJavaの初心者向けにおすすめ講座をまとめました!Udemyでは実際に動画を見ながら環境構築もできるのでおすすめです。ハンズオンで(自分の手を動かしなが...
あわせて読みたい
【独学だけで厳しいと感じたら】無料のプログラミングスクール3選 「しう」はプログラミングの勉強を独学で始めました。 最初はなかなか難しく感じ、配列の利用方法を完ぺきに身につけることさえ、時間がかかりました。   大学のテニス...
あわせて読みたい
Springのメリット・デメリット【Java】 (Spring FrameworkとSpring Bootの違いも解説) エンジニアとして3年目に突入し、一番触れる機会が多かった言語がJavaでSpringを利用する機会も多かったためJavaでのSpringのメリットやデメリットについて記載していき...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

【しう】
Java Engineer| 最近はKotlin| 「テニスとJava(プログラミング)のお悩み解決ラボ」運営者| プログラミング・開発現場の学びを主に発信|【経歴】受託系IT企業➪自社開発企業| ∮保有資格∮ : Java Silver,Oracle SQL Silver,基本情報,TOEIC 750,簿記3級

コメント

コメントする

CAPTCHA


目次