Como verificar se uma string é um número em Java

Mohammad Irfan 12 outubro 2023
  1. Verificar se uma String é um número em Java
  2. Verificar se uma String é um número utilizando a classe Character em Java
  3. Verifique se uma String é um número utilizando a biblioteca Apache em Java
  4. Verifique se uma String é um número utilizando a classe Double em Java
  5. Verifique se uma String é um número em Java 8
Como verificar se uma string é um número em Java

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

Artigo relacionado - Java String