【Java入門】equalsIgnoreCaseで大文字と小文字を区別せずに比較

文字列が一致するかどうかを確認する場合、大文字・小文字を区別したい場合と無視したい場合があるかと思います。そんな時に大文字、小文字を無視して一致するかどうかを確認する場合に、equalsIgnoreCaseメソッドを使います。

この記事では、equalsIgnoreCaseメソッドについて以下の内容で解説していきます。

  • equalsIgnoreCaseメソッドとは
  • equalsIgnoreCaseメソッドの使い方
  • equalsIgnoreCaseメソッドの注意点

今回はequalsIgnoreCaseメソッドについて、使い方をわかりやすく解説します!

なお、Javaの記事については、こちらにまとめています。

目次

equalsIgnoreCaseメソッドとは

equalsIgnoreCaseメソッドは、文字列が一致するかどうか比較判別する場合に、大文字と小文字を区別せずに比較することができます。

これに対して、大文字と小文字を区別して一致するかどうかを比較判別する場合にはequalsメソッドを用います。ちなみに「==」記号は同じオブジェクトかどうかを比較判別するために使用されるので、文字列の一致判別には使用しません。

equalsIgnoreCaseメソッドの使い方

それでは、サンプルコードを使って文字列の一致判定の例をみていきましょう。大文字と小文字を区別せずに一致判別するequalsIgnoreCaseメソッドを使う場合と、区別して一致判別するequalsメソッドを使う場合の両方での判別例を記述しています。

public class Main {

	public static void main(String[] args) {
		String upperCase = "ABC";
		String lowerCase = "abc";

		// 文字列の大文字と小文字を無視して一致判別
		if (upperCase.equalsIgnoreCase(lowerCase)){
			System.out.println("大文字、小文字を無視して一致!");
		} else {
			System.out.println("大文字、小文字を無視して不一致!");
		}

		// 文字列の大文字と小文字を区別して一致判別
		if (upperCase.equals(lowerCase)){
			System.out.println("大文字、小文字を区別して一致!");
		} else {
			System.out.println("大文字、小文字を区別して不一致!");
		}
	}
}

実行結果:

大文字、小文字を無視して一致!
大文字、小文字を区別して不一致!

equalsIgnoreCaseメソッドの注意点

equalsIgnoreCaseメソッドを使用する場合の注意として、文字列がnullの場合が挙げられます。サンプルコードを使って解説します。

public class Main {

	public static void main(String[] args) {
		String upperCase = null;
		String lowerCase = "abc";

		// 文字列の大文字と小文字を無視して一致判別
		if (upperCase.equalsIgnoreCase(lowerCase)){
			System.out.println("大文字、小文字を無視して一致!");
		} else {
			System.out.println("大文字、小文字を無視して不一致!");
		}
	}
}

実行結果:

Exception in thread "main" java.lang.NullPointerException
	at Main.main(Main.java:9)

このサンプルコードのように、equalsIgnoreCaseメソッドの呼び出し元の文字列が「null」の場合NullPointerExceptionの例外が発生します。

ちなみに、equalsIgnoreCaseメソッドの引数の文字列がnullの場合は、falseを返しエラーにはなりません。エラーが発生しないように修正したコードは以下のようになります。

public class Main {

	public static void main(String[] args) {
		String upperCase = null;
		String lowerCase = "abc";

		// if文で文字変数がnullか否かをチェック
		if (upperCase != null){
			if (upperCase.equalsIgnoreCase(lowerCase)){
				System.out.println("大文字、小文字を無視して一致!");
			} else {
				System.out.println("大文字、小文字を無視して不一致!");
			}
		} else {
			System.out.println("文字列がnullのため、一致判別ができません");
		}

		// 文字変数を使わずに文字列からequalsIgnoreCaseメソッドを使用
		if ("ABC".equalsIgnoreCase(lowerCase)){
			System.out.println("大文字、小文字を無視して一致!");
		} else {
			System.out.println("大文字、小文字を無視して不一致!");
		}
	}
}

実行結果:

文字列がnullのため、一致判別ができません
大文字、小文字を無視して一致!

この例のように、エラーの発生を防ぐためにはif文で文字変数がnullか否かのチェックをするか、もしくは文字変数を使わずに文字列からequalsIgnoreCaseメソッドを呼び出して使用するようにしましょう!

equalsメソッドで比較をする方法総まとめ

equalsメソッドで文字列を比較するいろいろな方法を次の記事にまとめているので、ぜひ確認してください!

まとめ

ここでは、equalsIgnoreCaseメソッドについて使い方や使う上での注意点について説明しました。equalsIgnoreCaseメソッドを使うことで、大文字と小文字の区別をせずに文字列の一致判別を行うことができます。

ただし、文字列がnullの場合などはエラーが発生する可能性もありますので、使いこなすことができるようにこの記事を何度も参考にして下さいね!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次