Javaでプログラムを書いていて、きちんと区別できていないように感じたのでまとめてみます。なお、PC上にJava環境がなくてもWebブラウザ上で簡単に動作を確認するだけなら以下が便利です。登録やインストール不要で、24の言語でプログラムの動作を確認できます。
ブラウザでプログラミング・実行ができる「オンライン実行環境」| paiza.IO
上記サイトに丸々コピペで動作します。
import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { /** null */ private static final String STR_NULL = null; /** 空文字 */ private static final String STR_NO = ""; /** 半角スペース */ private static final String STR_SPACE = " "; public static void main(String[] args) throws Exception { // 比較 print(); System.out.println("\n"); System.out.println("isEmpty()"); System.out.println("空文字:" + STR_NO.isEmpty()); System.out.println("半角スペース:" + STR_SPACE.isEmpty()); // nullに対してisEmpty()メソッドを呼ぶと例外発生 //System.out.println("半角スペース:" + STR_NULL.isEmpty()); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = br.readLine(); } public static void print() { // 空文字とnullは等しいか? System.out.println(STR_NO.equals(STR_NULL)); // 空文字とスペースは等しいか? System.out.println(STR_NO.equals(STR_SPACE)); // スペースとnullは等しいか? System.out.println(STR_SPACE.equals(STR_NULL)); } }
↓コンソール出力結果↓
false false false isEmpty() 空文字:true 半角スペース:false
JavaではNULL、空文字、スペースは区別されます。
JavaSEの標準では提供されていませんが、Commonsサブプロジェクトの拡張機能"StringUtils#isBlank()メソッド"を使うと半角スペースもtrueになります。
Commonについては以下が詳しいです(公式)
http://commons.apache.org/index.html
ではでは。
Java言語の体系的な知識を習得するには、Java Programmer資格を受験してみるのも良いと思います。受験料と参考書、結構高いのが悩ましいところです。
SE7のJava Programmer資格を取得した時の体験記です。
tempo96.hateblo.jp
【スポンサーリンク】