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

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

3 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.