Como verificar se uma string é um número em Java
- Verificar se uma String é um número em Java
-
Verificar se uma String é um número utilizando a classe
Characterem Java - Verifique se uma String é um número utilizando a biblioteca Apache em Java
-
Verifique se uma String é um número utilizando a classe
Doubleem Java - Verifique se uma String é um número em Java 8
Este tutorial introduz como verificar se uma string é numérica em Java e lista alguns exemplos de códigos para entendê-la.
Há várias maneiras de verificar se uma string numérica como utilizar regex, a classe Double, a classe Character ou a abordagem funcional do Java 8, etc.
Verificar se uma String é um número em Java
Uma String é numérica se e somente se ela contiver números (dígitos numéricos válidos). Por exemplo, "123" é uma string numérica válida enquanto "123a" não é uma string numérica válida porque contém um alfabeto.
Para verificar a string numérica, poderíamos utilizar o método matched() da classe String que toma regex como argumento e retorna um valor booleano ou true ou 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
Verificar se uma String é um número utilizando a classe Character em Java
Podemos utilizar o método isDigit() da classe Character para verificar cada caractere em um loop. Ele retorna o valor true ou 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
Verifique se uma String é um número utilizando a biblioteca Apache em Java
Se você estiver utilizando Apache, você pode utilizar o método isNumeric() da classe StringUtils, que retorna true se contiver uma seqüência 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
Verifique se uma String é um número utilizando a classe Double em Java
Podemos utilizar o método parseDouble() de Double class que converte uma string em duplo e retorna um valor do tipo duplo. Ele lança uma exceção se não puder ser analisado.
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
Verifique se uma String é um número em Java 8
Se você estiver usando a versão Java 8 ou superior, então você pode usar este exemplo para verificar a string numérica. Aqui, o método isDigit() da classe Character é passado em allMatch() como uma referência de 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