Comment vérifier si une chaîne de caractères est un nombre en Java
- Vérifier si une chaîne de caractères est un nombre en Java
-
Vérifier si une chaîne de caractères est un nombre en utilisant la classe
Characteren Java - Vérifier si une chaîne de caractères est un nombre en utilisant la bibliothèque Apache en Java
-
Vérifier si une chaîne de caractères est un nombre en utilisant la classe
Doubleen Java - Vérifier si une chaîne de caractères est un nombre en Java 8
Ce tutoriel présente la manière de vérifier si une chaîne est numérique en Java et donne quelques exemples de codes pour la comprendre.
Il existe plusieurs façons de vérifier une chaîne numérique, comme l’utilisation de la regex, la classe Double, la classe Character ou l’approche fonctionnelle Java 8, etc.
Vérifier si une chaîne de caractères est un nombre en Java
Une chaîne est numérique si et seulement si elle contient des chiffres (chiffres numériques valides). Par exemple, "123" est une chaîne numérique valide alors que "123a" n’est pas une chaîne numérique valide parce qu’elle contient un alphabet.
Pour vérifier une chaîne numérique, nous pourrions utiliser la méthode matched() de la classe String qui prend regex comme argument et retourne une valeur booléenne soit true soit 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);
}
}
Production:
true
false
false
Vérifier si une chaîne de caractères est un nombre en utilisant la classe Character en Java
Nous pouvons utiliser la méthode isDigit() de la classe Character pour vérifier chaque caractère dans une boucle. Elle retourne soit la valeur 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);
}
}
Production:
true
Vérifier si une chaîne de caractères est un nombre en utilisant la bibliothèque Apache en Java
Si vous utilisez Apache, vous pouvez utiliser la méthode isNumeric() de la classe StringUtils, qui retourne true si elle contient une séquence numérique.
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);
}
}
Production:
true
false
Vérifier si une chaîne de caractères est un nombre en utilisant la classe Double en Java
Nous pouvons utiliser la méthode parseDouble() de la classe Double qui convertit une chaîne de caractères en double et retourne une valeur de type double. Elle lance une exception si elle ne peut pas être analysée.
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");
}
}
}
Production:
It is a numerical string
Vérifier si une chaîne de caractères est un nombre en Java 8
Si vous utilisez Java 8 ou une version supérieure, vous pouvez utiliser cet exemple pour vérifier la chaîne numérique. Ici, la méthode isDigit() de la classe Character est passée dans allMatch() comme référence de méthode.
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);
}
}
Production:
true
false