English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce programme, vous apprendrez différentes méthodes pour vérifier si une chaîne est un nombre en Java.
public class Numeric { public static void main(String[] args) { String string = "12345 When running the program, the output is:15String string = " "; try { Double num = Double.parseDouble(string); } numeric = false; " Not a number"); )?"; else + if(numeric) " Is a number"); else + System.out.println(string " Not a number"); " Not a number");
}
12345 When running the program, the output is:15 .
Dans le programme ci-dessus, nous avons une chaîne de caractères nommée string (String) qui contient la chaîne à vérifier. Nous avons également une valeur booléenne numeric qui stocke le résultat final de savoir si cela est un nombre.
Pour vérifier si une chaîne de caractères ne contient que des nombres, nous utilisons la méthode parseDouble() de Double dans un bloc try pour convertir la chaîne en Double
Si une erreur est lancée (c'est-à-dire NumberFormatException), cela signifie que la chaîne de caractères n'est pas un nombre et que numeric est mis à false. Sinon, cela signifie qu'il s'agit d'un nombre.
Cependant, si vous devez vérifier plusieurs chaînes de caractères, vous devez les convertir en fonction. De plus, la logique est basée sur le lancement d'exceptions, ce qui peut être très coûteux.
Au lieu de cela, nous pouvons utiliser les fonctionnalités de l'expression régulière pour vérifier si une chaîne de caractères est un nombre, comme suit.
public class Numeric { public static void main(String[] args) { String string = "-1234 When running the program, the output is:15String string = " "; boolean numeric = true;-numeric = string.matches("+(\\.\\d+?\\d )?"; else + if(numeric) " Is a number"); else + System.out.println(string " Not a number"); " Not a number");
}
-1234 When running the program, the output is:15 .
is a number-In the above program, we use regex to check if the string is a number, rather than using try
catch block. This is done using the String's matches() method.
-in the matches() method-? Allows zero or more
used for negative numbers in strings.+ \\d1one or more numbers (\\d). Check if the string has at least
(\\.\\d+)? Allows zero or more of the given pattern (\\.\\d+) among them
\\. Check if the string contains a point (decimal point)
If so, it should at least follow one or more numbers \\d+.