Controlla se una stringa è un numero in Java
- Controlla se una stringa è un numero in Java
-
Controlla se una stringa è un numero utilizzando la classe
Characterin Java - Controlla se una stringa è un numero utilizzando la libreria Apache in Java
-
Controlla se una stringa è un numero utilizzando la classe
Doublein Java - Controlla se una stringa è un numero in Java 8
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.
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);
}
}
Produzione:
true
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.
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);
}
}
Produzione:
true
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.
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);
}
}
Produzione:
true
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.
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");
}
}
}
Produzione:
It 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.
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);
}
}
Produzione:
true
false