【Java入門】equalsメソッドで比較をする方法総まとめ

こんにちは!エンジニアの中沢です。

JavaにはString型の文字列を比較するためのequalsメソッドがあります。

equalsメソッドを使わずに、”==”演算子で文字列を比較しようとすると思い通りの結果にならないので注意が必要です。

この記事では、

・equalsメソッドの比較とは
・文字列をequalsメソッドで比較する方法
・equalsIgnoreCaseで大文字と小文字を区別せずに比較する方法
・equalsメソッドで否定の判定をする方法

という基本的な内容から、

・Objectsクラスのequalsメソッドでnullを安全に比較する方法
・equalsメソッドで2つのListを比較しデータを抽出する方法

などの応用的な使い方に関しても解説していきます。

今回はこれらの方法を覚えるために、equalsメソッドのさまざまな使い方をわかりやすく解説します!

equalsメソッドの比較とは

2つの文字列が等しいかどうかの比較をするには、equalsメソッドを使います。

int型などのプリミティブ型の場合は”==”演算子で比較しますが、String型は参照型なのでequalsメソッドで比較する必要があります。

文字列を”==”演算子とequalsメソッドで比較した結果を次のプログラムで確認してみましょう。

実行結果

このプログラムでは、”==”演算子を使った1度目の比較で”true”を返していますが、文字列を追加した後の2度目の比較では同じ文字列なのに”false”を返しています。

このように、”==”演算子を使った場合は参照先の文字列が同じでもオブジェクトが違うと”false”を返すため、文字列を比較する場合にはequalsメソッドを使います。

このプログラムの実行結果から、equalsメソッドを使った場合には正しく文字列の比較ができることが確認できました!

String型の文字列をequalsで比較する方法についてはこちらで詳しく解説しているので、ぜひ確認してください!

equalsIgnoreCaseの使い方

ここではequalsIgnoreCaseメソッドの使い方を解説します。

文字列を比較するときに大文字と小文字を区別せずに、同じ文字列として比較したい場合には、equalsIgnoreCaseメソッドを使います。

次のプログラムでequalsIgnoreCaseメソッドの使い方を確認してみましょう。

実行結果

このプログラムでは、equalsメソッドとequalsIgnoreCaseメソッドで文字列を比較した結果をそれぞれ表示しています。

このプログラムの実行結果から、equalsIgnoreCaseメソッドで大文字と小文字を区別せずに文字列の比較ができることが確認できました!

equalsIgnoreCaseで大文字と小文字を区別せずに比較する方法についてはこちらで詳しく解説しているので、ぜひ確認してください!

equalsメソッドで否定の判定をする方法

ここではequalsメソッドで2つの文字列が等しい場合に”false”を返す否定の判定をする方法を解説します。

equalsメソッドは2つの文字列を比較して、それが等しい場合に”true”を返しますが、等しい場合に”false”を返す処理をしたいときには否定の論理演算子”!”を使います。

次のプログラムで使い方を確認してみましょう。

実行結果

このプログラムではequalsメソッドで文字列を比較した結果と、その結果を否定の論理演算子”!”で反転させた結果をそれぞれ表示しています。

このプログラムの実行結果から、否定の論理演算子”!”で比較の結果を反転できることが確認できました!

equalsメソッドで否定の判定をする方法についてはこちらで詳しく解説しているので、ぜひ確認してください!

【速習Java】”==”と”equals”の違い(否定の方法も解説)
更新日 : 2019年5月7日

Objectsクラスのequalsメソッドの使い方

ここではObjectsクラスのequalsメソッドを使って、nullPointerExceptionの例外を発生させずにnullを安全に比較する方法を解説します。

Stringクラスのequalsメソッドでは、メソッドの呼び出し元のオブジェクトがnullの場合にnullPointerExceptionの例外が発生します。

Java7で追加された、java.util.Objectsクラスのequalsメソッドを使えばオブジェクトがnullの場合でも例外を発生させずに安全に比較をすることができます。

Objectsクラスのequalsメソッドを使うには、次のインポート文が必要です。

Objectsクラスのequalsメソッドの使い方を、次のプログラムで確認してみましょう。

実行結果

このプログラムではObjectsクラスのequalsメソッドでnullと文字列を比較した結果を表示しています。

また、null同士を比較した場合には”true”を返すことが確認できます。

このプログラムの実行結果から、nullの可能性がある文字列を安全に比較できることが確認できました!

Objectsクラスのequalsメソッドでnullを安全に比較する方法についてはこちらで詳しく解説しているので、ぜひ確認してください!

【Java入門】Objectsクラスのequalsメソッドでnullを安全に比較
更新日 : 2018年11月20日

2つのListを比較してデータを抽出する方法

最後にequalsメソッドの実践的な使い方として、2つのListを比較して一致するデータを抽出する方法を解説します。

2重ループを使ったシンプルな方法で、2つのListから一致する文字を抽出して新しいListに追加する方法を次のプログラムで確認してみましょう。

実行結果

このプログラムでは、2重ループとequalsメソッドを使ってListAの文字とListBの文字が同じ場合にListCに文字を追加しています。

2つのListを比較してデータを抽出する方法についてはこちらで詳しく解説しているので、ぜひ確認してください!

【3分Java入門】2つのListを比較しデータを抽出する方法
更新日 : 2018年11月12日

まとめ

いかがでしたか?

今回はequalsメソッドの使い方について解説しました。

equalsメソッドはnullの場合の例外に注意する必要がありますが、Objectsクラスのequalsメソッドならnullを安全に比較できるのでぜひ覚えてくださいね。

もし、equalsメソッドを使う方法を忘れてしまったらこの記事を確認してください!

Javaカリキュラム無料公開中!

この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。

Java入門からアプリ開発まで未経験者が知っておくべき基礎を総ざらい
更新日 : 2019年5月22日

最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java1
LINEで送る
Pocket

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]

おすすめコンテンツ

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

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