この記事ではString型のnullをチェックをする方法をわかりやすく解説します!
- 「nullのチェックをしたい」
- 「isEmptyの使い方を知りたい」
- 「nullと空文字列の違いを知りたい」
今回はそんな悩みを解決するnullについてです。
なお、Javaの記事については、こちらにまとめています。
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について忘れてしまったらこの記事を確認してください!