English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este programa, aprenderá diferentes métodos para verificar si una cadena es un número en Java.
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 + "Es un número"); else System.out.println(string + "No es un número"); } }
Al ejecutar el programa, la salida es:
12345.15 es un número
En el programa anterior, tenemos una cadena llamada string (String) que contiene la cadena a verificar. También tenemos un valor booleano numeric que almacena el resultado final de si es un valor numérico.
Para verificar si una cadena contiene solo números, en el bloque try, usamos el método parseDouble() de Double para convertir la cadena a Double
Si se lanza un error (es decir, NumberFormatException), significa que la cadena no es un número y se establece numeric en false. De lo contrario, significa que es un número.
Sin embargo, si se necesita verificar múltiples cadenas, debe cambiarse a una función. Y, la lógica se basa en lanzar excepciones, lo que puede ser muy costoso.
Por el contrario, podemos usar las funciones de expresiones regulares para verificar si una cadena es un número, como se muestra a continuación.
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 + "Es un número"); else System.out.println(string + "No es un número"); } }
Al ejecutar el programa, la salida es:
-1234.15 es un número
En el programa anterior, utilizamos regex para verificar si la cadena es un número, en lugar de usar try-bloque catch. Esto se realiza utilizando el método matches() de String.
en el método matches()
-? Permite cero o más-para números negativos en la cadena.
\\d+ Verificar si la cadena tiene al menos1o más números (\\d).
(\\.\\d+)? Permite cero o más patrones dados (\\.\\d+) entre
\\d. Verificar si la cadena contiene \\d (punto decimal)
Si es así, debería seguir al menos un número o varios números \\d+.