Programa Java para comprobar si una cadena es numérica

En este programa, aprenderá diferentes técnicas para verificar si una cadena es numérica o no en Java.

Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:

  • Cadena Java
  • Manejo de excepciones de Java

Ejemplo 1: comprobar si una cadena es numérica

 public class Numeric ( public static void main(String() args) ( String string = "12345.15"; boolean numeric = true; try ( Double num = Double.parseDouble(string); ) catch (NumberFormatException e) ( numeric = false; ) if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )

Salida

 12345.15 es un número

En el programa anterior, tenemos una Stringcadena con nombre que contiene la cadena a verificar. También tenemos un valor booleano numérico que almacena si el resultado final es numérico o no.

Para comprobar si la cadena contiene solo números, en el bloque try, usamos Doubleel parseDouble()método de para convertir la cadena a Double.

Si arroja un error (es decir, NumberFormatExceptionerror), significa que la cadena no es un número y que el valor numérico se establece en false. De lo contrario, es un número.

Sin embargo, si desea verificar si hay varias cadenas, deberá cambiarlo a una función. Y, la lógica se basa en lanzar excepciones, esto puede resultar bastante caro.

En cambio, podemos usar el poder de las expresiones regulares para verificar si la cadena es numérica o no, como se muestra a continuación.

Ejemplo 2: compruebe si una cadena es numérica o no usa expresiones regulares (regex)

 public class Numeric ( public static void main(String() args) ( String string = "-1234.15"; boolean numeric = true; numeric = string.matches("-?\d+(\.\d+)?"); if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )

Salida

 -1234.15 es un número

En el programa anterior, en lugar de usar un bloque try-catch, usamos regex para verificar si la cadena es numérica o no. Esto se hace usando el matches()método de String .

En el matches()método,

  • -?permite cero o más -para números negativos en la cadena.
  • \d+comprueba que la cadena debe tener al menos 1 o más números ( \d).
  • (\.\d+)?permite cero o más del patrón dado (\.\d+)en el que
    • \.comprueba si la cadena contiene .(puntos decimales) o no
    • En caso afirmativo, debe ir seguido de al menos uno o más números \d+.

Articulos interesantes...