Mon application prend une chaîne comme celle-ci (-110,23, -111.9543633) J'ai besoin de valider / récupérer à l'intérieur du script Scala que la chaîne si elle est numérique ou non? P>
3 Réponses :
considérer à la facilité d'utilisation, considérez Cette implicite, p> par conséquent p> scala.util.try code> pour attraper des exceptions possibles dans la conversion d'une chaîne sur une valeur numérique, comme suit,
Essayez de capturer pour une telle vérification est une perte de ressources, vous pouvez vérifier la chaîne directement.
supposant que vous voulez non seulement convertir en utilisant Alors je dirais: Afaik, Non Strong> Il n'est pas possible. Surtout, car types primitifs tels que essayer (x.toint) code> ou essayer (x.tofloat) code> mais veut réellement un validateur > qui prend un chaîne code> et retourner true code> iff la chaîne code> de la chaîne code> peut être converti en un A code> avec Preuve implicite: numérique [A] code>. p>
numérique code> n'est pas scellé em>. C'est vous pouvez créer vos propres implémentations de numeric code> p>
int, long, flotteur, double code> peut être facilement extrait avec une expression régulière. p>
J'ai essayé cela et sa fin fonctionnant: p>
val S = "-1112.12" s.isnumeric && (S.Contains ('.') == Faux) P>
Veuillez préciser si vous souhaitez convertir en
int code> oudouble code> ou plutôt pour vérifier si une chaînecode> peut être convertie en un type qui a un type Implicitnumérique [_] code>Supposons juste que mon contribution se présente comme "111" de sorte que son numéro numérique à je soulever un drapeau indiquant son numérique, ou même si l'entrée vient comme "-78", mais si mon entrée vient comme "111,67", j'ai besoin d'élever le drapeau comme décimal .