得到这段代码:
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?
答案 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;
}