2016-07-06 1 views
0

Je dois vérifier si une chaîne a au moins deux caractères alpha, comme a1763r ou ab1244
Je pensais que je voudrais utiliser quelque chose comme:Vérifiez si la chaîne contient au moins deux caractères alpha

myString = "a123B"; 
myString.Any(char.IsDigit).Count(); 

mais je J'utilise .net 2.0, donc cette méthode n'existe pas Any().

Y a-t-il quelque chose d'équivalent?

+2

Essayez la programmation. Par exemple, vous pourriez écrire une boucle qui vérifie chaque caractère. –

+0

Vous pourriez utiliser une expression régulière ... –

+0

Mais pourquoi aurait-il jamais. – SimpleVar

Répondre

4

Ne sait pas alpha ou ce pas, mais vous pouvez compter le nombre de caractères chiffres sans LINQ comme ceci:

string str = "a123B"; 
int digits = 0; 
foreach (char c in str) 
    if (char.IsDigit(c)) 
     digits++; 
print(digits); // 3 
+0

remercie l'homme, ça marche bien aussi. –

0

Utilisez regexpressions

deux lettres: Regex.IsMatch(myString, "[A-Za-z].*?[A-Za-z]");

deux chiffres: Regex.IsMatch(myString, "\d.*?\d");

+0

Ça a tellement bien marché. Merci. –

2

Vous pouvez créer une fonction d'aide simple qui boucle sur votre chaîne, en prenant un minimum thr Eshold à rencontrer. Il retourne booléen pour correspondre au type de comportement de sortie de .Any()

public bool ContainsMinAlphaCharacters(string input, int threshold) 
{ 
    var count = 0; 
    foreach (var character in input) 
    { 
     if (char.IsDigit(character)) count++; 
     if (count >= threshold) 
     { 
      return true; 
     } 
    } 

    return false; 
} 
+0

c'est exactement ce que je veux, merci! –

0

Pas vraiment. Vous devrez faire une boucle dans la chaîne et vérifier si chaque caractère est un chiffre pour obtenir le compte.