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
Character
em Java - Verifique se uma String é um número utilizando a biblioteca Apache em Java
-
Verifique se uma String é um número utilizando a classe
Double
em 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