Java equalsメソッドで比較する値がnullまたは空文字だった場合のサンプル

Javaのequalsメソッドで比較する値がnullまたは空文字だった場合のサンプルです。

目次

値がnullのとき

  • a.equals(b)のときのaがnullだった場合は、NullPointerExceptionが発生します。
  • a.equals(b)のときのaがnullではなくbがnullだった場合は、falseを返します。
  • Java7で追加されたObjects.equals(a,b)は、a,bがnullでもNullPointerExceptionは発生しません。

コード

値がnullのときのサンプルです。

package test1;
 
public class Test1 {
	public static void main(String[] args) {
		String null1 = null;
		String null2 = null;
		String moji = "abc";
		
		// 1. null.equals(文字列)の場合、NullPointerExceptionになる
		try {
			if (null1.equals(moji)) {
				System.out.println("1:true"); // 出力されない
			}
		} catch (NullPointerException e) {
			System.out.println(e); // NullPointerExceptionが出力される
		}
	  
		// 2. 文字列.equals(null)の場合、falseになる
		if (moji.equals(null1)) {
		} else {
			System.out.println("2:false"); // 2:falseが出力される
		}
	 
		// 3. null.equals(null)の場合、NullPointerExceptionになる
		try {
			if (null1.equals(null2)) {
			} else {
				System.out.println("3:false"); // 出力されない
			}
		} catch (NullPointerException e) {
			System.out.println(e); // NullPointerExceptionが出力される
		}
	}
}

Objects.equals(a,b)のサンプル

Java7で追加されたObjects.equals(a,b)のサンプルです。

package test1;

import java.util.Objects;

public class Test1 {
	public static void main(String[] args) {
		String null1 = null;
		String null2 = null;
		String moji = "abc";
		
		// 4. Objects.equals(null, 文字列)の場合、falseになる
		if (Objects.equals(null1, moji)) {
		} else {
			System.out.println("4:false"); // 4:falseが出力される
		}
	 
		// 5. Objects.equals(文字列,null)の場合、falseになる
		if (Objects.equals(moji, null1)) {
		} else {
			System.out.println("5:false"); // 5:falseが出力される
		}
	 
		// 6. Objects.equals(null, null)の場合、trueになる
		if (Objects.equals(null1, null2)) {
			System.out.println("6:true"); // 6:trueが出力される
		}
	}
}

==でnullかどうか確認

==でnullかどうか確認できます。

package test1;

public class Test1 {
	public static void main(String[] args) {
		String null1 = null;
		
		// 7. nullかどうかは==で比較できる
		if (null1 == null) {
			System.out.println("7:true"); // 7:trueが出力される。
		}
	}
}

値が空文字のとき

  • 空文字("")もequalsメソッドで判定できます。
  • a.equals(b)のときのa,bのいずれかまたはa,bの両方が空文字でも例外は発生しません。
  • Java7で追加されたObjects.equals(a,b)は、a,bが空文字でも例外は発生しません。

コード

サンプルのコードです。

package test1;

public class Test1 {
	public static void main(String[] args) {
		
		String kara1 = "";
		String kara2 = "";
		String moji = "abc";

		// 1. 文字列.equals("")の場合
		if (moji.equals(kara1)) {
		} else {
			System.out.println("1:false"); // 1:falseが出力される
		}

		// 2. "".equals(文字列)の場合
		if (kara1.equals(moji)) {
		} else {
			System.out.println("2:false"); // 2:falseが出力される
		}

		// 3. "".equals("")の場合
		if (kara1.equals(kara2)) {
			System.out.println("3:true"); // 3:trueが出力される
		}
	}
}

Objects.equals(a,b)のサンプル

Java7で追加されたObjects.equals(a,b)のサンプルです。

package test1;

import java.util.Objects;

public class Test1 {
	public static void main(String[] args) {
		
		String kara1 = "";
		String kara2 = "";
		String moji = "abc";

		// 4. Objects.equals(文字列, "")の場合
		if (Objects.equals(moji, kara1)) {
		} else {
			System.out.println("4:false"); // 4:falseが出力される
		}

		// 5. Objects.equals("",文字列)の場合
		if (Objects.equals(kara1, moji)) {
		} else {
			System.out.println("5:false"); // 5:falseが出力される
		}

		// 6. Objects.equals("","")の場合
		if (Objects.equals(kara1, kara2)) {
			System.out.println("6:true"); // 6:trueが出力される
		}
	}
}

isEmptyメソッドで確認

空文字はisEmptyメソッドで確認できます。

package test1;

public class Test1 {
	public static void main(String[] args) {
		
		String kara1 = "";

		// 7. 空文字はisEmptyメソッドで確認できる
		if (kara1.isEmpty()) {
			System.out.println("7:true"); // 7:trueが出力される
		}
	}
}

Objectクラス - equalsメソッド

public  boolean  equals (Object obj)

Objectsクラス - equalsメソッド

public  static  boolean  equals (Object a, Object b)

関連の記事

Java 文字列の値を比較するサンプル(equals)
Java 文字列が空か確認するサンプル(isEmpty)




△上に戻る