本サイトはプロモーション(広告)が含まれています。

【Java】nullを空文字や0に変換する方法

【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

Javaの記事一覧へ

PAGE TOP