some image

Codes and Tags

Validar numero en Java con expresiones regulares

Etiquetas: Blog, Programación No comments

Una de las operaciones más comunes cuando se trabaja con datos, es validar si un dato es numérico o no. Existen diferentes formas de hacerlo, una de ellas muy común es utilizar una expresión regular al tratar de realizar un parseInt, parseLong o parseDouble. Sin embargo cuando no necesitamos crear metodos adicionales en nuestras clases, podemos recurrir rapidamente a nuestros mejores amigos para manejo de cadenas : “Las Expresiones Regulares”.

El ejemplo mostrado a continuación presenta otra alternativa para realizar validaciones de números utilizando expresiones regulares, a partir del método maches de la clase String :).

Código

public class ValidarNumero {

	public static void main(String[] args) {

		ValidarNumero ejemplo = new ValidarNumero();

		// # Realizando validaciones a un numero

		// Numero con un espacio
		System.out.println(ejemplo.validar(" 123456"));
		// Numero con un caracter especial (punto)
		System.out.println(ejemplo.validar("12.3456"));
		// Con un caracter especial (coma)
		System.out.println(ejemplo.validar("10,0001"));
		// Numero valido
		System.out.println(ejemplo.validar("3465756"));
		// Numero con una letra (A)
		System.out.println(ejemplo.validar("10000A"));
		// Cadena vacia
		System.out.println(ejemplo.validar(""));

		// # Eliminando caracteres no correspondientes a un numero

		// Numero con un espacio
		System.out.println(ejemplo.convertir(" 123456"));
		// Numero con un caracter especial (punto)
		System.out.println(ejemplo.convertir("12.3456"));
		// Con un caracter especial (coma)
		System.out.println(ejemplo.convertir("10,0001"));
		// Numero valido
		System.out.println(ejemplo.convertir("3465756"));
		// Numero con una letra (A)
		System.out.println(ejemplo.convertir("10000A"));
		// Cadena vacia
		System.out.println(ejemplo.convertir(""));

	}

	public boolean validar(String cadena) {
		if (cadena.matches("[0-9]*")) {
			return true;
		} else {
			return false;
		}
	}

	public int convertir(String numero) {
		// Se reemplazan todos los caracteres que no correspondan a un numero
		// por espacio
		numero = numero.replaceAll("[^0-9]", "");

		// Si la cadena queda vacia
		if (numero.equals("")) {
			numero = "0";
		}

		return Integer.parseInt(numero);
	}

}

Salida

false
false
false
true
false
true
123456
123456
100001
3465756
10000
0

About Edwin Torres

Related Posts

  • Logo Java
  • Logo Java
  • Logo Java
  • Logo Java

Add your comment