English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Collection complète d'exemples Kotlin
Dans ce programme, vous apprendrez différentes techniques pour vérifier si une chaîne est un nombre en Kotlin.
import java.lang.Double.parseDouble fun main(args: Array<String>) { val string = "12345s15" var numeric = true try { val num = parseDouble(string) } catch (e: NumberFormatException) { numeric = false } if (numeric) println("$string est un nombre") else println("$string n'est pas un nombre") }
Lors de l'exécution de ce programme, la sortie est :
12345s15 Ce n'est pas un nombre
Dans le programme ci-dessus, nous avons une chaîne string qui contient la chaîne à vérifier. Nous avons également une valeur booléenne numeric pour stocker le résultat final s'il s'agit d'un nombre.
Pour vérifier si string ne contient que des nombres, nous utilisons la méthode parseDouble() de Double dans un bloc try.
Si une erreur est lancée (c'est-à-dire une erreur NumberFormatException), cela signifie que string n'est pas un nombre et numeric est mis à false. Sinon, c'est un nombre.
Mais, si vous devez vérifier le nombre de chaînes, vous devez les modifier en fonction. Et, la logique est basée sur le lancement d'exceptions, ce qui peut être très coûteux.
En revanche, nous pouvons utiliser les fonctionnalités des expressions régulières pour vérifier si une chaîne est un nombre, comme suit.
fun main(args: Array<String>) { val string = "-1234.15" var numeric = true numeric = string.matches("-?\\d+(\..\d+)?".toRegex()) if (numeric) println("$string est un nombre") else println("$string n'est pas un nombre") }
Lors de l'exécution de ce programme, la sortie est :
-1234.15 C'est un nombre
Dans le programme ci-dessus, nous utilisons regex pour vérifier si la chaîne est un nombre, au lieu d'utiliser try-C'est ce qui est accompli avec la méthode matches() de String.
Dans le bloc catch.
-? Permet zéro ou plus grand-un nombre négatif dans la chaîne.
\d+ Vérifiez que la chaîne doit au moins contenir1ou plusieurs nombres (\d).
(\..\d+)? Permet un ou plusieurs motifs donnés (\..\d+) où
\..Vérifiez si la chaîne contient un point (point décimal)
Si c'est le cas, il devrait au moins suivre un ou plusieurs nombres \d+。
Voici le code Java équivalent :Programme Java pour vérifier si une chaîne est un nombre。