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:
String cadenaUno = "1234";
if (cadenaUno.matches("[0-9]*"))
System.out.println("Es un número");
else
System.out.println("No es un número");
O con el otro patrón:
String cadenaUno = "1234";
if (cadenaUno.matches("\\d*"))
System.out.println("Es un número");
else
System.out.println("No es un número");
Podéis probar a cambiar el contenido del String para probar los diferentes comportamientos.