Neste programa, você aprenderá diferentes técnicas para verificar se uma string é numérica ou não em Java.
Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Java:
- Java String
- Manipulação de exceções Java
Exemplo 1: Verifique se uma string é 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"); ) )
Resultado
12345,15 é um número
No programa acima, temos uma String
string nomeada que contém a string a ser verificada. Também temos um valor booleano numérico que armazena se o resultado final é numérico ou não.
Para verificar se a string contém apenas números, no bloco try, usamos Double
o parseDouble()
método de para converter a string em a Double
.
Se gerar um erro (ou seja, NumberFormatException
erro), significa que a string não é um número e que numérico está definido como false
. Caso contrário, é um número.
No entanto, se quiser verificar se há uma série de strings, você precisará alterá-la para uma função. E, a lógica é baseada em exceções de lançamento, isso pode ser muito caro.
Em vez disso, podemos usar o poder das expressões regulares para verificar se a string é numérica ou não conforme mostrado abaixo.
Exemplo 2: verifique se uma string é numérica ou não usa expressões regulares (regex)
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"); ) )
Resultado
-1234,15 é um número
No programa acima, em vez de usar um bloco try-catch, usamos regex para verificar se a string é numérica ou não. Isso é feito usando o matches()
método de String .
No matches()
método,
-?
permite zero ou mais-
para números negativos na string.\d+
verifica se a string deve ter pelo menos 1 ou mais números (\d
).(\.\d+)?
permite zero ou mais do padrão fornecido(\.\d+)
no qual\.
verifica se a string contém.
(pontos decimais) ou não- Em caso afirmativo, deve ser seguido de pelo menos um ou mais números
\d+
.