En este programa, aprenderá diferentes técnicas para verificar si una cadena es numérica o no en Java.
Ejemplo 1: compruebe 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");
}
}
Cuando ejecutas el programa, la salida será:
12345.15 es un número
En el programa anterior, tenemos una cadena con
String
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 verificar si la cadena contiene solo números, en el bloque try, utilizamos
Double
el parseDouble()
método para convertir la cadena a Double
.
Si arroja un error (es decir,
NumberFormatException
error), significa que la cadena no es un número y el valor numérico está establecido 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 ser bastante costoso.
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: Verifique si una cadena es numérica o no usa expresiones regulares (expresiones regulares)
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");
}
}
Cuando ejecutas el programa, la salida será:
-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+
.
0 Comentarios
Dejanos tu comentario para seguir mejorando!