【Java】nullを空文字や0に変換する方法
nullを空文字に変換する方法
Javaでnullを空文字に変換するにはif文でnullであるか判定し、その後変数に空文字をセットしてあげることで対応可能です。
if (変数 == null){ 変数 = ""; } ※変数は値がnullのString型
以下の文ではJavaでnullを比較しようとすると java.lang.NullPointerExceptionとなります。
Map<String, Object> Map = new HashMap<>(); String 値 = (String) Map.get("test"); if(値.equals("")) { System.out.println(値); } // 実行結果 java.lang.NullPointerException
取得する値がnullとなる可能性がある場合はnullを空文字に変換してやれば良いです。
Map<String, Object> Map = new HashMap<>(); String 値 = (String) Map.get("test"); if(値 == null) { 値 = ""; } if(値.equals("")) { System.out.println(値); } // 実行結果※空文字が出力
値 == null でnullかどうか判定し、値=”” で空文字をセットすることで変換することができます。
nullを0に変換する方法
数値についても同様にできそうですが、以下のメソッドは組めません。
Map<String, Object> Map = new HashMap<>(); int 値 = (Integer) Map.get("test"); //ここで取得しようとしてNullPointerExceptionとなる。 if(値 == null) { //値 == nullは構文エラーとなる 値 = 0; }
数値の値を取得したい場合でnullとなり得る場合はObjects.isNull(obj)で三項演算子を利用して、nullの場合は、0をセット、存在する場合は値を取得する形とすれば、nullの場合は0に変換できます。
Objects.isNull(取得する変数) ? 0 :取得する変数;
以下のとおりnullの場合は0に、null出ない場合は値を取得できます。
//取得する数値がnullのケース Map<String, Object> Map = new HashMap<>(); int 値 = Objects.isNull((Integer) Map.get("test")) ? 0 :(Integer) Map.get("test"); System.out.println(値); //実行結果 0
//取得する数値がnullでないケース Map<String, Object> Map = new HashMap<>(); Map.put("test",100); int 値 = Objects.isNull((Integer) Map.get("test")) ? 0 :(Integer) Map.get("test"); System.out.println(値); //実行結果 100
コメントを残す