Cómo comprobar si una cadena es un número en Java
- Comprobar si una cadena es un número en Java
-
Comprueba si una cadena es un número usando la clase
Character
en Java - Comprobar si una cadena es un número usando la biblioteca de Apache en Java
-
Comprueba si una cadena es un número usando la clase
Double
en Java - Comprueba si una cadena es un número en Java 8
Este tutorial introduce cómo comprobar si una cadena es numérica en Java y enumera algunos códigos de ejemplo para entenderla.
Hay varias maneras de comprobar una cadena numérica como usar regex, la clase Double
, la clase Character
o el enfoque funcional de Java 8, etc.
Comprobar si una cadena es un número en Java
Una String
es numérica si y sólo si contiene números (dígitos numéricos válidos). Por ejemplo, "123"
es una cadena numérica válida mientras que "123a"
no es una cadena numérica válida porque contiene un alfabeto.
Para comprobar la cadena numérica, podríamos usar el método matched()
de la clase String
que toma regex
como argumento y devuelve un valor booleano, ya sea true
o false
.
public class SimpleTesting {
public static void main(String[] args) {
String str = "123";
boolean isNumeric = str.matches("[+-]?\\d*(\\.\\d+)?");
System.out.println(isNumeric);
str = "121xy";
isNumeric = str.matches("[+-]?\\d*(\\.\\d+)?");
System.out.println(isNumeric);
str = "0x234";
isNumeric = str.matches("[+-]?\\d*(\\.\\d+)?");
System.out.println(isNumeric);
}
}
Resultado:
true
false
false
Comprueba si una cadena es un número usando la clase Character
en Java
Podemos usar el método isDigit()
de la clase Character
para comprobar cada carácter en un bucle. Devuelve un valor true
o false
.
public class SimpleTesting {
public static void main(String[] args) {
String str = "1123";
boolean isNumeric = true;
for (int i = 0; i < str.length(); i++) {
if (!Character.isDigit(str.charAt(i))) {
isNumeric = false;
}
}
System.out.println(isNumeric);
}
}
Resultado:
true
Comprobar si una cadena es un número usando la biblioteca de Apache en Java
Si estás usando Apache, puedes usar el método isNumeric()
de la clase StringUtils
, que devuelve true
si contiene una secuencia numérica.
import org.apache.commons.lang3.StringUtils;
public class SimpleTesting {
public static void main(String[] args) {
String str = "1123";
boolean isNumeric = StringUtils.isNumeric(str);
System.out.println(isNumeric);
str = "123xyz";
isNumeric = StringUtils.isNumeric(str);
System.out.println(isNumeric);
}
}
Resultado:
true
false
Comprueba si una cadena es un número usando la clase Double
en Java
Podemos usar el método parseDouble()
de la clase Doble que convierte una cadena en doble y devuelve un valor de tipo doble. Lanza una excepción si no puede ser analizado.
public class SimpleTesting {
public static void main(String[] args) {
String str = "1123";
try {
Double.parseDouble(str);
System.out.println("It is a numerical string");
} catch (NumberFormatException e) {
System.out.println("It is not a numerical string");
}
}
}
Resultado:
It is a numerical string
Comprueba si una cadena es un número en Java 8
Si utiliza Java 8 o una versión superior, puede utilizar este ejemplo para comprobar la cadena numérica. Aquí, el método isDigit()
de la clase Character
se pasa en allMatch()
como referencia del método.
public class SimpleTesting {
public static void main(String[] args) {
String str = "1123";
boolean isNumeric = str.chars().allMatch(Character::isDigit);
System.out.println(isNumeric);
str = "ab234";
isNumeric = str.chars().allMatch(Character::isDigit);
System.out.println(isNumeric);
}
}
Resultado:
true
false