Tips

Apache Commons Javaプログラム演習問題 第2回

Apache Commons Javaプログラム演習問題 第2回

Apache Commons を利用した Java でのプログラム作成問題の2回目となります。

環境を構築していない場合は、概要を読み、環境を構築してから実施してください。

※この出題形式に関しては答えは1つではありません。
解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正解として下さい。

問題

package jp.pjin.tech.commons;

public class Practice002 {
	public static void main(String[] args) {
		String a = null;
		String b = "a";

		if (a.equals(b)) {
			System.out.println("equal");
		} else {
			System.out.println("not equal");
		}
	}
}

上記コードを実行すると、実行時例外(NullPointerException)が発生します。
正しく修正してください。

解答例1
[java] package jp.pjin.tech.commons;

public class Practice002 {
public static void main(String[] args) {
String a = "b";
String b = null;

if (a != null && a.equals(b)) {
System.out.println("equal");
} else {
System.out.println("not equal");
}
}
}
[/java]

equalsメソッドは、実行インスタンス(a)がnullでなければ、NullPointerExceptionは発生しません。
ですので、ifの条件で、aがnullでなく、かつという条件を追加します。

論理演算子は2つ並べて書きます。初心者でありがちなのが、論理演算子(&)を一つしか付けなくて、NullPointerExceptionが発生するケースがあります。
最初のうちは必ず2つ並べて書くようにするということを覚えておいてください。

また、左から順番に評価されていきますので、nullとの比較は必ず左に書いてください。


解答例2
[java] package jp.pjin.tech.commons;

import org.apache.commons.lang3.StringUtils;

public class Practice002 {
public static void main(String[] args) {
String a = null;
String b = "b";

if (StringUtils.equals(a, b)) {
System.out.println("equal");
} else {
System.out.println("not equal");
}
}
}
[/java]

commonsのStringUtils#equalsを利用した例です。
この場合、引数の2つともnullを許可します。

また、両方nullだった場合は、trueが返ります。

[java] package jp.pjin.tech.commons;

import org.apache.commons.lang3.StringUtils;

public class Practice002 {
public static void main(String[] args) {
String a = "A";
String b = "a";

if (StringUtils.equalsIgnoreCase(a, b)) {
System.out.println("equal");
} else {
System.out.println("not equal");
}
}
}
[/java]

上記は、equalsIgnoreCaseを利用したケースですが、xxxIgnoreCaseは大文字と小文字を区別しません。
この場合は、trueになりますので、「equal」と表示されます。

apache commons

Apache Commons Javaプログラム演習問題 第23回

Apache Commons を利用した Java でのプログラム作成問題の23回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
apache commons

Apache Commons Javaプログラム演習問題 第22回

Apache Commons を利用した Java でのプログラム作成問題の22回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
apache commons

Apache Commons Javaプログラム演習問題 第21回

Apache Commons を利用した Java でのプログラム作成問題の21回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
apache commons

Apache Commons Javaプログラム演習問題 第20回

Apache Commons を利用した Java でのプログラム作成問題の20回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
apache commons

Apache Commons Javaプログラム演習問題 第19回

Apache Commons を利用した Java でのプログラム作成問題の19回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Commons Javaプログラム演習問題 第16回をご覧ください。 ※この出題形式に関して
apache commons

Apache Commons Javaプログラム演習問題 第18回

Apache Commons を利用した Java でのプログラム作成問題の18回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Commons Javaプログラム演習問題 第16回をご覧ください。 ※この出題形式に関して
apache commons

Apache Commons Javaプログラム演習問題 第17回

Apache Commons を利用した Java でのプログラム作成問題の17回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Commons Javaプログラム演習問題 第16回をご覧ください。 ※この出題形式に関して
apache commons

Apache Commons Javaプログラム演習問題 第16回

Apache Commons を利用した Java でのプログラム作成問題の16回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
apache commons

Apache Commons Javaプログラム演習問題 第12回

Apache Commons を利用した Java でのプログラム作成問題の12回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
apache commons

Apache Commons Javaプログラム演習問題 第15回

Apache Commons を利用した Java でのプログラム作成問題の15回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正

新連載はじまりました!新Java基礎 連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search