validación de entrada del usuario: Fecha de entrada

Tom Młynarski:

Tengo un método por debajo del cual pregunta al usuario para proporcionar la fecha de que el teclado, yo necesitar extender mi código para validar si el usuario introduce de hecho los datos en formato M / d / yyyy. Si no es así, volver a preguntar a repetir y datos de entrada correcta, ¿cómo puedo aplicar eso?

    private static void extracted2(Doctor l1, Patient p1, List<Schedule> lista) {
    Scanner sc2 = new Scanner(System.in);
    System.out.println("provide data with format M/d/yyyy");

    while (true) {
        try {
            String userinput = sc2.next();
            DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("M/d/yyyy");
            LocalDate date = LocalDate.parse(userinput, dateFormat);
            Schedule g5 = new Schedule(5, l1, p1, date, false, false);
            lista.add(g5);
            for (Schedule x : lista) {
                System.out.println(x);
            }

        } catch (DataFormatException e) {
            System.out.println("Wrong data " + e.getMessage());
        }
    }

}
dkb:

Creo que está cerca, pero aquí está la solución final:
Eliminado otra lógica a partir del código, ya que puede ser añadido.

Scanner sc2 = new Scanner(System.in);
        LocalDate date = null;
        boolean isValid;
        do {
            try {
                System.out.println("Provide date format M/d/yyyy");
                DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("M/d/yyyy");
                String userinput = sc2.next();
                date = LocalDate.parse(userinput, dateFormat);
                isValid = true;
            } catch (DateTimeParseException exception) {
                isValid = false;
            }
        } while(!isValid);
System.out.println(date);

salida:

Provide date format M/d/yyyy
333
Provide date format M/d/yyyy
444
Provide date format M/d/yyyy
1/2/2020
2020-01-02

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=410272&siteId=1
Recomendado
Clasificación