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.

}

A %d blogueros les gusta esto: