java

Java: solicitar y validar número

En este post de programación en Java te enseñaré a solicitar un número por teclado pero asegurándonos de que el número realmente es válido y que se encuentra dentro de un rango.

De este modo vamos a poder validar números, ya que si el usuario ingresa una cadena o un número inválido vamos a indicarlo, y no vamos a dejar de solicitar el número hasta que el mismo sea válido.

Lo mismo sucede para el otro caso: además de validar que el valor sea numérico, vamos a comprobar que se encuentre en un rango.

De este modo validaremos números en Java usando la clase Scanner.

Explicación del algoritmo

El funcionamiento va a estar encerrado dentro de un método en donde habrá un ciclo while infinito. Dentro del ciclo vamos a solicitar el número, leer si es un entero y en caso de que esté en el rango vamos a devolverlo.

En caso contrario vamos a consumir lo que haya en el escáner invocando a next, y el ciclo se repetirá hasta que el usuario ingrese un número válido.

Validar número en Java

Solicitar y validar número en Java

La función de Java queda así:

// https://parzibyte.me/blog
public static int solicitarNumeroValido(String mensaje, int minimo, int maximo) {
    Scanner s = new Scanner(System.in);
    int numero;
    while (true) {
        System.out.println(mensaje);
        if (s.hasNextInt()) {
            numero = s.nextInt();
            if (numero >= minimo && numero <= maximo) {
                return numero;
            } else {
                System.out.println("Número fuera de rango. Intente de nuevo");
            }
        } else {
            s.next();
        }
    }
}

Los parámetros que recibe son el mensaje que se muestra para solicitar el número así como el mínimo y máximo para el rango del número. Un ejemplo del modo de uso es el siguiente:

package me.parzibyte;
import java.util.Scanner;

public class Main {

    // https://parzibyte.me/blog
    public static int solicitarNumeroValido(String mensaje, int minimo, int maximo) {
        Scanner s = new Scanner(System.in);
        int numero;
        while (true) {
            System.out.println(mensaje);
            if (s.hasNextInt()) {
                numero = s.nextInt();
                if (numero >= minimo && numero <= maximo) {
                    return numero;
                } else {
                    System.out.println("Número fuera de rango. Intente de nuevo");
                }
            } else {
                s.next();
            }
        }
    }
    // https://parzibyte.me/blog
    public static void main(String[] args) {
        int numero = solicitarNumeroValido("Ingresa un número entre 1 y 5: ", 1, 5);
        System.out.println("El número ingresado es: " + numero);
    }
}

Nota: como puedes ver, el método crea un Scanner. En ocasiones cuando es llamado y hay otras instancias de Scanner en el programa, ocurren errores.

Si tienes problemas y vas a usar varios Scanner, te recomiendo utilizar una única estancia y compartirla en todo el programa.

Para terminar te dejo con más tutoriales para aprender Java.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

3 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

3 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

3 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

3 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

3 días hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

3 días hace

Esta web usa cookies.