Validar Numero entero en java

Ha veces es necesario comprobar si cierta cadena es un numero o no. Por ejemplo cuando deseamos guardar un dato numerico en una base de datos (campos edad, cantidad, etc), antes de enviarlos a la BD se deben validar para para que el DBMS no nos devuelva error.

El siguiente codigo muestra como validar si en una cadena que llega todos son numeros. Se supone de antemano que a la cadena se le han eliminado espacios al principio y al final.


/*
 Descripcion:
 Contiene un metodo que Valida si una cadena es un numero entero.
 author: gonzasilve@gmail.com
 fecha:  06/12/2009
 archivo CadenaEnteros.java
*/

public class CadenaEnteros
{
 //Devuelve true si en una cadena que llega todos son numeros, false en caso contrario
 public boolean esEntero(String cad)
 {
 for(int i = 0; i<cad.length(); i++)
 if( !Character.isDigit(cad.charAt(i)) )
 return false;

 return true;
 }

 public static void main(String args[])
 {
 CadenaEnteros cadena1 = new CadenaEnteros();
 //Probar con un numero entero valido:   Devuelve true
 System.out.println("\"3432465\" es entero: " + cadena1.esEntero("3432465"));
 //Probar con una cadena invalida:   Devuelve false
 System.out.println("\"34hola\" es entero: " + cadena1.esEntero("34hola"));
 //Probar con una cadena invalida:   Devuelve false
 System.out.println("\"23.5\" es entero: " + cadena1.esEntero("23.5"));
 }
}

Basicamente el metodo recorre la cadena caracter por caracter y comprueba si NO es un digito, si alguno no lo es, devuelve false. Si ninguno fue false llegara la instruccion return true y terminara el metodo.
Ojo, este metodo solo valida NUMERO ENTEROS, los numeros flotantes (con punto decimal) se deben validar con otro metodo. Si se intenta validar un numero flotante con este metodo siempre devolvera false (pues el caracter punto ( . ) no es un digito).

Enseguida se muestra una imagen de la compilacion y ejecucion de la prueba de este metodo en mi sistema Ubuntu.

Aunque la implementacion de esto se puede hacer de muchas formas aqui muestro la manera como se me ocurrio a mi. Es muy util por ejemplo para validar las cadenas introducidas en campos JTextField en una GUI que tenga campos en donde el usuario deba escribir un dato entero.

Espero que le sirva a alguien, hasta pronto.

}

Acerca de gonzasilve
Freelance Web Developer.

10 Responses to Validar Numero entero en java

  1. Pingback: PHP: Validar un numero entero « .::programming notes::. Gonzalo Silverio

  2. RAIZA says:

    Hola Gonzalo tu por casualidad me podrás decir cómo se hace un programa en java que pida un año por pantalla y diga si es bisiesto te lo agradecería no entiendo nada de java gracias

  3. javier_007 says:

    no muestrra..nose q onda la paguina,,sino fijense ak

    http://blog.video2brain.com/es/validar-numeros-javascript.htm

  4. javier_007 says:

    c’9′

  5. javier_007 says:

    nose q onda..no me toma bien el codigo la paguina….pero dentro del if pone:

    (c’9′ )

  6. javier_007 says:

    perdon,corrigo el anterior
    char c;
    c = evt.getKeyChar();
    if (c’9′ ){
    evt.consume();

    }

  7. javier_007 says:

    en el evento Key Typed del jTexfiel pega este codigo..y te funciona (solo para numeros)

    char c;
    c = evt.getKeyChar();
    if (c’9′ ){
    evt.consume();

    }

  8. gonzasilve says:

    muy bueno tambien

    esa es la forma de validar que la mayoria usa

    gracias por el aporte

  9. daniel says:

    boolean isInteger(String str){
    try {
    int v = Integer.parseInt(str);
    return true;
    } catch(NumberFormatException e) {
    return false;
    }
    }

Deja un comentario