【Java入門】String型のnullをチェックをする方法

この記事ではString型のnullをチェックをする方法をわかりやすく解説します!

  • 「nullのチェックをしたい」
  • 「isEmptyの使い方を知りたい」
  • 「nullと空文字列の違いを知りたい」
  • 今回はそんな悩みを解決するnullについてです。

    nullとは

    初めにnullについて解説します。Javaには参照型とプリミティブ型の2つのデータ型があります。

    String型は参照型のため値を直接持たず、値のある場所を参照するようになっています。
    この参照先が無い状態をnullといいます。空の文字列の場合は参照先に空の文字列がある状態なので、nullにはなりません。

    int型やchar型ように、値を直接格納する型をプリミティブ型といいます。
    プリミティブ型にはnullがありません

    参照型は型名が大文字から始まり、プリミティブ型は型名が小文字から始まるようになっているので、そこから区別することもできます。

    nullと空文字列の違い

    次にnullと空文字列の違いを解説します。

    初期化などでString型にnullを代入したままの状態でメソッドを呼び出すと、NullPointerExceptionの例外が発生するので注意してください。空の文字列の場合は正常にメソッドを使うことができます。

    次のプログラムで確認してみましょう。

    public class Main {
     
        public static void main(String[] args) {
            String str1 = "";
            String str2 = null;
             
            System.out.println(str1.isEmpty());
            System.out.println(str2.isEmpty());
        }
    }
    [実行結果]
    true
    NullPointerException

    空の文字列からメソッドを呼び出した場合は問題がありませんが、nullからメソッドを呼び出した場合にはNullPointerExceptionの例外が発生していることが確認できました!

    nullと空文字列をチェックをする方法

    最後にnullと空文字列をチェックをする方法を解説します。

    文字列がnullのときにequalsメソッドを呼び出すと例外が発生するので、nullのチェックは”==”演算子で行います。

    空文字列のチェックにはisEmptyメソッドを使います。isEmptyメソッドは文字列が空のときに”true”を返します文字列がnullか空文字列かをチェックする方法を確認するために次のプログラムを見てみましょう。

    public class Main {
     
        public static void main(String[] args) {
            String str1 = null;
            String str2 = "";
            String str3 = " ";
             
            System.out.println(str1 == null);
            System.out.println(str2.isEmpty());
            System.out.println(str3.isEmpty());
        }
    }
    [実行結果]
    true
    true
    false

    このように”==”演算子とisEmptyメソッドを使うことで、nullと空文字列のチェックができました!

    String(文字列クラス)総まとめ

    String(文字列クラス)についてさらに詳しく知りたいときはこちらの記事を確認してください!

    まとめ

    いかがでしたか?

    今回はString型のnullをチェックをする方法について解説しました。nullが代入されている状態からメソッドを呼び出した場合には例外が発生するので注意してくださいね。

    もしnullについて忘れてしまったらこの記事を確認してください!

    LINEで送る
    Pocket

    「プログラミング、右も左もわからない…」という方にオススメ

    当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

    その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

    侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

    cta_under_bnr

    「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

    書いた人

    中沢 丈

    中沢 丈

    フリーランスエンジニア。
    システム開発からコンテンツ作成まで幅広く対応します。

    連絡先はこちらです。
    [email protected]