【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







コメントを残す