Мне дают txt с определенным форматом. Формат должен начинаться с dd/MM/uuuu. Однако я хотел бы проверить, действительно ли это этот конкретный формат, иначе мой код сломается.
Теперь мои мысли заключались в том, чтобы проверить, могут ли конкретные 10 первых символов (с разделителями) определять объект LocalDate. Итак, я придумал это:
public boolean isDate(String date) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/uuuu");
LocalDate ld = null;
try {
ld = LocalDate.parse(date, formatter);
System.out.println(ld);
} catch (DateTimeParseException e) {
System.out.println("Date " + date + " is not a date.");
return false;
}
return true;
}
Однако это не лучшая практика, потому что я контролирую поток программы с помощью исключений. Кроме того, мне нужно проверить еще 8 полей, чтобы представить время и т. д., поэтому мой код будет полон попыток. Есть ли более эффективный способ обойти это?
isDate(String string)
, код для него выглядел бы так. - person yur   schedule 07.11.2019try
короткое и легко читаемое. Я бы тоже так поступил. - person Ole V.V.   schedule 07.11.2019