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
Character
en 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
Double
en 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