Programme Java pour vérifier si une chaîne est numérique

Dans ce programme, vous apprendrez différentes techniques pour vérifier si une chaîne est numérique ou non en Java.

Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation Java suivantes:

  • Chaîne Java
  • Gestion des exceptions Java

Exemple 1: vérifier si une chaîne est numérique

 public class Numeric ( public static void main(String() args) ( String string = "12345.15"; boolean numeric = true; try ( Double num = Double.parseDouble(string); ) catch (NumberFormatException e) ( numeric = false; ) if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )

Production

 12345.15 est un nombre

Dans le programme ci-dessus, nous avons une Stringchaîne nommée qui contient la chaîne à vérifier. Nous avons également une valeur booléenne numérique qui stocke si le résultat final est numérique ou non.

Pour vérifier si la chaîne contient uniquement des nombres, dans le bloc try, nous utilisons Doublela parseDouble()méthode de pour convertir la chaîne en un Double.

S'il renvoie une erreur (c'est-à-dire une NumberFormatExceptionerreur), cela signifie que la chaîne n'est pas un nombre et que le numérique est défini sur false. Sinon, c'est un nombre.

Cependant, si vous souhaitez vérifier si pour un certain nombre de chaînes, vous devez le changer en fonction. Et, la logique est basée sur le lancement d'exceptions, cela peut être assez coûteux.

Au lieu de cela, nous pouvons utiliser la puissance des expressions régulières pour vérifier si la chaîne est numérique ou non, comme indiqué ci-dessous.

Exemple 2: vérifier si une chaîne est numérique ou n'utilise pas d'expressions régulières (regex)

 public class Numeric ( public static void main(String() args) ( String string = "-1234.15"; boolean numeric = true; numeric = string.matches("-?\d+(\.\d+)?"); if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )

Production

 -1234.15 est un nombre

Dans le programme ci-dessus, au lieu d'utiliser un bloc try-catch, nous utilisons regex pour vérifier si la chaîne est numérique ou non. Cela se fait en utilisant la matches()méthode de String .

Dans la matches()méthode,

  • -?autorise zéro ou plus -pour les nombres négatifs dans la chaîne.
  • \d+vérifie que la chaîne doit avoir au moins 1 ou plusieurs nombres ( \d).
  • (\.\d+)?autorise zéro ou plus du modèle donné (\.\d+)dans lequel
    • \.vérifie si la chaîne contient .(points décimaux) ou non
    • Si oui, il doit être suivi d'au moins un ou plusieurs nombres \d+.

Articles intéressants...