NULL・空文字・0

NULL

NULLは、変数の値に何も定義されていない状態を表す特殊な値です。
nullが格納された変数に対しメソッド呼び出しを行うと、NullPointerExceptionというエラーが発生します。

Javaのデータ型には「参照型」と「プリミティブ型」の2つがあります。
String型は参照型のため値を直接持たず、値のある場所を参照するようになっています。参照先が無い状態をnullといいます。
int型やchar型等、値を直接格納する型をプリミティブ型といい、プリミティブ型にはnullがありません

空文字

空文字は長さ0の「文字列」を意味します。

「 」や「 」は全角スペース、半角スペースであり、空文字ではありません。
Javaでは文字列をダブルクォーテーション(“”)で囲って示すので、空白文字は””と表すことができます。

null・空文字判定

hogeObject.isNullisEmpty==nullif(hoge)
0FALSEエラーエラーエラー
“”FALSETRUEFALSEエラー
FALSEFALSEエラーエラーFALSE
nullTRUEエラーTRUEエラー
“0”FALSEFALSEFALSEエラー
配列FALSEエラーFALSEエラー
宣言無しエラーエラーエラーエラー
初期値無しFALSEエラーFALSEエラー

if()ではboolean型の判定のみ可能なため、boolean型であるFALSE以外ではエラーが出力されます。

NULLかどうか判定(Object.isNull())

Objects.isNull()は引数で渡された値がnullかどうかを判定します。
nullの場合trueを返し、それ以外の場合はfalseを返します。

「com.cmps.nullEmpty」パッケージを作成し、その中に「Null」クラスを作成してください。

Objects.isNull()使用例
String var = null;

//変数varが NULLかどうかを判定します。
if (Objects.isNull(var)) {
 System.out.println("nullです。");
} else {
 System.out.println("nullではありません。");
}

isNullの引数はObject型であるため、どのような型の変数でもnull判定が行えます。

Objectsクラスを使用する場合は、インポートにimport java.util.Objects;を追加することも忘れずに行いましょう。

文字列が空かどうか判定(isEmpty)

isEmpty()メソッドは文字列が空かどうか判定するメソッドです。
対象の文字列が空文字の場合はtrueを返します。

isEmptyメソッド使用例
String str = "";
        
// 変数strが空かどうかを判定します。
if(!str.isEmpty()) {
 System.out.println("空ではありません。");
} else {
 System.out.println("空です。");
}

比較演算子のところでもありましたが「!」をつけることにより判定を反転させることができます
例:str.isEmpty() ※空の場合true !str.isEmpty() ※空でない場合true

練習問題

「com.cmps.nullEmpty」パッケージ内に、「NullQuestion」クラスを作成してください。

問1:NULLでない場合、「OK!」と表示する。

問2: 空でない場合、「値があるぞ!」と表示する。

問3:Listを作成し、そのリストが「空でない」かつ「nullでない」場合、「なにかしらのデータがあるぞ!」と表示する。

問4:配列を作成し、その配列が「空でない」かつ「nullでない」場合、「なにかしらのデータがあるぞ!」と表示する。

練習問題のヒント
問4
固定長配列の場合、「配列が空」については「要素数が0」と考えます。「配列」の単元に載っているものを使って表現できます。

タイトルとURLをコピーしました