Controlla se una stringa è un numero in Java

Mohammad Irfan 12 ottobre 2023 Java Java String
  1. Controlla se una stringa è un numero in Java
  2. Controlla se una stringa è un numero utilizzando la classe Character in Java
  3. Controlla se una stringa è un numero utilizzando la libreria Apache in Java
  4. Controlla se una stringa è un numero utilizzando la classe Double in Java
  5. Controlla se una stringa è un numero in Java 8
Controlla se una stringa è un numero in Java

Questo tutorial introduce come verificare se una stringa è numerica in Java ed elenca alcuni codici di esempio per comprenderla.

Ci sono diversi modi per controllare una stringa numerica come usare regex, la classe Double, la classe Character o l’approccio funzionale di Java 8, ecc.

Controlla se una stringa è un numero in Java

Una String è numerica se e solo se contiene numeri (cifre numeriche valide). Ad esempio, "123" è una stringa numerica valida mentre "123a" non è una stringa numerica valida perché contiene un alfabeto.

Per controllare la stringa numerica, potremmo usare il metodo matched() della classe String che accetta regex come argomento e restituisce un valore booleano true o false.

Java
 javaCopypublic 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);
  }
}

Produzione:

 textCopytrue
false
false

Controlla se una stringa è un numero utilizzando la classe Character in Java

Possiamo usare il metodo isDigit() della classe Character per controllare ogni carattere in un bucle. Restituisce un valore true o false.

Java
 javaCopypublic 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);
  }
}

Produzione:

 textCopytrue

Controlla se una stringa è un numero utilizzando la libreria Apache in Java

Se stai usando Apache, puoi usare il metodo isNumeric() della classe StringUtils, che restituisce true se contiene una sequenza numerica.

Java
 javaCopyimport 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);
  }
}

Produzione:

 textCopytrue
false

Controlla se una stringa è un numero utilizzando la classe Double in Java

Possiamo usare il metodo parseDouble() della classe Double che converte una stringa in double e restituisce un valore di tipo double. Genera un’eccezione se non può essere analizzato.

Java
 javaCopypublic 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");
    }
  }
}

Produzione:

 textCopyIt is a numerical string

Controlla se una stringa è un numero in Java 8

Se stai usando Java 8 o una versione successiva, puoi usare questo esempio per controllare la stringa numerica. Qui, il metodo isDigit() della classe Character viene passato in allMatch() come riferimento al metodo.

Java
 javaCopypublic 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);
  }
}

Produzione:

 textCopytrue
false
Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti

Articolo correlato - Java String