【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の場合などはエラーが発生する可能性もありますので、使いこなすことができるようにこの記事を何度も参考にして下さいね!

この記事を書いた人

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
info@sss-lab.com

目次