Il n'y a pas de surcharge pour les regex.
double myNum = 0;
String testVar = "Not A Number";
if (Double.TryParse(testVar, out myNum)) {
// it is a number
} else {
// it is not a number
}
Par ailleurs, tous les types de données standard, à l'exception flagrante des GUID, supportent TryParse.
mise à jour
secretwep a fait remarquer que la valeur "2345," passera le test ci-dessus en tant que nombre. Toutefois, si vous devez vous assurer que tous les caractères de la chaîne sont des chiffres, il faut adopter une autre approche.
exemple 1 :
public Boolean IsNumber(String s) {
Boolean value = true;
foreach(Char c in s.ToCharArray()) {
value = value && Char.IsDigit(c);
}
return value;
}
ou si vous voulez être un peu plus fantaisiste
public Boolean IsNumber(String value) {
return value.All(Char.IsDigit);
}
actualisation 2 ( de @stackonfire pour traiter les chaînes de caractères nulles ou vides)
public Boolean IsNumber(String s) {
Boolean value = true;
if (s == String.Empty || s == null) {
value=false;
} else {
foreach(Char c in s.ToCharArray()) {
value = value && Char.IsDigit(c);
}
} return value;
}
1 votes
Duplicata possible de Comment puis-je identifier si une chaîne de caractères est un nombre ?