String.split(" - ")无效

时间:2017-01-31 14:24:38

标签: java regex split

我有一种计算年龄的方法; 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

1 个答案:

答案 0 :(得分:3)

该输出只是Java打印数组的标准方式。

我认为你的任务错误,我认为。

我想它应该是

date = fields[0]
months = fields[1]
year = fields[2]