Programa Java para verificar se uma string é numérica

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 Stringstring 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 Doubleo parseDouble()método de para converter a string em a Double.

Se gerar um erro (ou seja, NumberFormatExceptionerro), 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+.

Artigos interessantes...