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
Character
in Java - Controlla se una stringa è un numero utilizzando la libreria Apache in Java
-
Controlla se una stringa è un numero utilizzando la classe
Double
in 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