jump to navigation

Validar si un dato es numérico con Patrones en Java Marzo 31, 2009

Publicado por lineadecodigo en : Java , trackback

En el artículo Validar si un dato es numérico en Java veíamos como de una forma muy sencilla y mediante la transformación de cadenas en enteros podíamos validar si un dato es numérico en Java.

Si bien, ese ejemplo, válido para aprender a programar con Java, se nos quedaría corto para ejemplos reales.

Una buena forma, como han apuntado algunos de nuestros visitantes, es utilizar patrones sobre las cadenas de texto.

Lo primero que vamos a definir es el patrón que detecte que una cadena sea un número. Para ello indicaremos que la cadena tenga dígitos y que estos puedan aparecer N veces.

De esta manera nuestro patrón sería el siguiente:

[0-9]*

Otra forma de representar un dígito es \d. Por lo tanto nuestro patrón sería

\\d*

Hay que tener cuidado y escapar la barra invertida. Para ello la duplicamos la barra invertida.

Ahora deberemos ejecutar el patrón sobre la cadena. La gestión de patrones y expresiones regulares en Java se realiza mediante la librería java.util.regex y sus clases Matcher y Pattern. Aunque también tenemos el método .matches(), el cual se puede ejecutar sobre una String.

Esto último será lo que hagamos para ejecutar el patrón:

  1. String cadenaUno = "1234";
  2.  
  3. if (cadenaUno.matches("[0-9]*"))
  4. System.out.println("Es un número");
  5. else
  6. System.out.println("No es un número");

O con el otro patrón:

  1. String cadenaUno = "1234";
  2.  
  3. if (cadenaUno.matches("\\d*"))
  4. System.out.println("Es un número");
  5. else
  6. System.out.println("No es un número");

Podéis probar a cambiar el contenido del String para probar los diferentes comportamientos.

Articulos Similares:

|- Descargar el código
|- Reportar error en el código
|- Foro sobre Java Util

Enviar entrada por email Enviar entrada por email | Imprimir Imprimir | 4716 visitas

1 Star2 Stars3 Stars4 Stars5 Stars (Todavia sin evaluar)
Loading ... Loading ...

Comentarios»

1. chuidiang - Abril 1, 2009

Hola:

En las expresiones regulares de java el \d es equivalente a [0-9], por lo que en el ejemplo también podría ponerse

cadenaUno.matches(“\\d*”)

La \ hay que “escaparla” poniéndola dos veces.

Se bueno.

2. lineadecodigo - Abril 1, 2009

@chuidiang,

Muy buena contribución… La he incluido en el artículo.

3. marcos jvc - Abril 7, 2009

mmm segun leo (segun dado que no he probado el codigo) una cadena vacia es tomada como un numero cosa que es incorrecta.

Saludos

4. chuidiang - Abril 11, 2009

Hola:

Si quires garantizar que al menos hay una cifra, en vez de asterisco, usa un +

\\d+

o bien

[0-9]+

El asterisco es 0 o más veces. El + es 1 o más veces.

Se bueno.

5. ChXt0 - Abril 25, 2009

Órale que interesante, no sabía que se podían utilizar las expresiones regulares en Java para esto.

Todos los días se aprende algo nuevo, gracias a los dos.

Saludos.




Si tienes dudas sobre Java Util no dudes en visitar el Foro sobre Java Util.
Imagen CAPTCHA CAPTCHA Audio
Refrescar imagen