-4
年齢を計算するメソッドがあります。 calculateAge(User user)
:String.split( " - ")not working
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が1988年1月1日ですが、フィールドは[Ljava.lang です。文字列; @ 6d41a4aフィールドの配列を表示する代わりに。したがって、日付、月、年はnullと表示され、Integer.parseInt(null)
にはなりません。したがって、NumberFormatException: null
となります。
べきであると思います。値がnullの理由は、フィールドを印刷しようとした後、3行ですべてnullに設定されているためです。 –
'fields'は配列であり、' ArrayList'ではありません。そして、 'date'、' month'、 'year'はあなたが割り当てた値なので' null'です。おそらく、 'date = fields [0];'などを意味するでしょう。 –