Programme Kotlin 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 dans Kotlin.

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

 import java.lang.Double.parseDouble fun main(args: Array) ( val string = "12345s15" var numeric = true try ( val num = parseDouble(string) ) catch (e: NumberFormatException) ( numeric = false ) if (numeric) println("$string is a number") else println("$string is not a number") )

Lorsque vous exécutez le programme, la sortie sera:

 12345s15 n'est pas 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 voulez 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)

 fun main(args: Array) ( val string = "-1234.15" var numeric = true numeric = string.matches("-?\d+(\.\d+)?".toRegex()) if (numeric) println("$string is a number") else println("$string is not a number") )

Lorsque vous exécutez le programme, la sortie sera:

 -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+.

Voici le code Java équivalent: programme Java pour vérifier si une chaîne est numérique ou non.

Articles intéressants...