我有一种计算年龄的方法; calculateAge(User user)
:
public int calculateAge(User user) {
String date = null, month = null, year = null;
String[] fields;
String DOB = user.getDOB();
System.out.println(DOB);
fields = DOB.split("-");
System.out.println(fields);
fields[0] = date;
fields[1] = month;
fields[2] = year;
System.out.println(date);
System.out.println(month);
System.out.println(year);
LocalDate birthDate = LocalDate.of(Integer.parseInt(year), Integer.parseInt(month), Integer.parseInt(date));
LocalDate now = LocalDate.now();
Period age = Period.between(birthDate, now);
return age.getYears();
}
打印是调试行,截至目前,这是他们打印的内容:
DOB 1-1-1988 ,但字段是 [Ljava.lang.String; @ 6d41a4a ,而不是显示字段数组。因此,日期,月份和年份打印为 null ,并且它不能Integer.parseInt(null)
,因此它为我提供NumberFormatException: null
。
答案 0 :(得分:3)
该输出只是Java打印数组的标准方式。
我认为你的任务错误,我认为。
我想它应该是
date = fields[0]
months = fields[1]
year = fields[2]