Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Sugerencia] Para evitar errores con coma o punto

 private void filtrarSeriesPorTemporadaYEvaluacion() {
        System.out.println("¿Filtrar series con cuantas temporadas?");
        var totalTemporadas = teclado.nextInt();
        teclado.nextLine();
        System.out.println("¿Con evaluacion a partir de cual valor?");
        String evaluacionStr = teclado.nextLine();
        double evaluacion;
        try {
            evaluacion = Double.parseDouble(evaluacionStr.replace(',', '.'));
        } catch (NumberFormatException e) {
            System.out.println("Valor inválido para evaluación.");
            return; // o pedir la entrada nuevamente
        }
        List<Serie> filtroSeries = repository.seriesPorTemporadaYEvaluacion(totalTemporadas, evaluacion);
        System.out.println("*** Series filtradas ***");
        filtroSeries.forEach(s -> System.out.println(s.getTitulo() + " - evaluacion: " + s.getEvaluacion()));

    }
1 respuesta

¡Hola Christian, espero que estés bien!

Gracias por compartir tu código y tu sugerencia para manejar los errores de formato numérico. La idea de reemplazar la coma por un punto al convertir una cadena a un número decimal es una solución práctica para evitar errores de formato, especialmente en contextos donde los usuarios pueden ingresar números con comas como separadores decimales.

Aquí tienes algunos consejos adicionales que podrían ser útiles:

  1. Validación de Entrada: Antes de intentar convertir la cadena a un número, podrías realizar una validación más robusta para asegurarte de que la entrada es válida. Esto podría incluir el uso de expresiones regulares para verificar el formato.

  2. Manejo de Errores: En lugar de simplemente imprimir un mensaje de error y retornar, podrías implementar un bucle que pida al usuario que ingrese la evaluación nuevamente hasta que ingrese un valor válido.

    boolean entradaValida = false;
    while (!entradaValida) {
        System.out.println("¿Con evaluación a partir de cuál valor?");
        String evaluacionStr = teclado.nextLine();
        try {
            evaluacion = Double.parseDouble(evaluacionStr.replace(',', '.'));
            entradaValida = true;
        } catch (NumberFormatException e) {
            System.out.println("Valor inválido para evaluación. Intenta de nuevo.");
        }
    }
    
  3. Internacionalización: Si estás desarrollando una aplicación que podría ser utilizada en diferentes regiones, considera el uso de bibliotecas de internacionalización que manejen automáticamente los formatos numéricos y de fecha según la configuración regional del usuario.

Espero que estas sugerencias te sean útiles y que puedas implementar la lógica de manera efectiva en tu proyecto. ¡Bons estudios!