Java将字符串解析为int,然后为null

时间:2014-09-18 19:19:45

标签: java

得到这段代码:

            System.out.println("Introduce salary: ");
            Scanner alpha8 = new Scanner(System.in);
            String salary = alpha8.nextLine();
            int salaryNew = 0;
            if(salary .isEmpty()){
                salary = null;
            }else{
                salaryNew = Integer.parseInt(salary);
            }

如何使IF仅从IF输出1个变量?因为如果引入的值为null(扫描器的空白区域,如输入)将工资设置为null,我将在稍后使用。

问题是我需要一个" null"或者" int值"。

在" else"我不能这样做:

salary = Integer.parseInt(salary);

因为id得到一个错误,我都不能将int解析为null。

这种方法可以转换日期:

public static Date changeDate(String introducedDate) throws ParseException {
    SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
    java.util.Date sqlDate = sdf.parse(introducedDate);
    java.sql.Date newSqlDate= new java.sql.Date(sqlDate.getTime());
    return newSqlDate;
}

如果introduDate为null,则会抛出异常,如果引入的日期也为NULL,如何更改该方法以返回NULL?

3 个答案:

答案 0 :(得分:2)

第1部分

  

问题是我需要一个" null"或者" int值"。

如果您想要一个可以为空的整数值,请使用包装类Integer

Integer salaryNew = null;
if (!salary.isEmpty()) {
    salaryNew = Integer.parseInt(salary);
}

第2部分

  

如果introduDate为null,则会抛出异常,如果引入的日期也为NULL,如何更改该方法以返回NULL?

在你做任何工作之前,你需要检查参数的值(参见@ nem的答案,因为他打败了我到那一半)。

答案 1 :(得分:1)

查看@ azurefrog的第一个问题的答案。

  

如果introduDate为null,则会抛出异常,如果引入的日期也为NULL,如何更改该方法以返回NULL?

public static Date changeDate(String introducedDate) throws ParseException {
    if(introducedDate == null) {  // ADD THIS CHECK
        return null;
    }
    SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
    java.util.Date sqlDate = sdf.parse(introducedDate);
    java.sql.Date newSqlDate= new java.sql.Date(sqlDate.getTime());
    return newSqlDate;
}

答案 2 :(得分:0)

你可以做 -

if(salary != null && ! salary.isEmpty() )
{
     return Integer.parseInt(salary);
}else{
      return null;
}

第二部分在执行任何日期格式之前添加此if条件 -

   if(introducedDate == null) { 
        return null;
    }
相关问题