Chaîne contient au moins un chiffre

Je suis en train de voir si une chaîne contient au moins un chiffre ou une minuscule ou une majuscule.

J'ai écrit quelque chose comme ceci:

      int combinations = 0;
      string pass = "!!!AAabas1";

      if (pass.matches("[0-9]")) {
          combinations = combinations + 10;
      }

      if (pass.matches("[a-z]")) {
          combinations =combinations + 26;
      }

      if (pass.matches("[A-Z]")) {
          combinations =combinations + 26;
      }

Cependant, je ne comprends pas pourquoi je ne peut pas obtenir des combinaisons d'aller à 36. Ils ont juste rester à 0. Ce que je fais mal?

Donner internationale des utilisateurs de l'amour--utf8 pour la victoire! Aussi les gens à l'aide de signes de ponctuation et d'autres caractères spéciaux doivent obtenir un crédit supplémentaire.
Robertson: je pensais que Java représentation interne est l'UTF-16...
Oui, mais il ne fait que donner du crédit pour les 0-9A-Za-z, pas y compris l'espace de-/ :-@ [-` { -~ et puis le plein de caractères UTF-8.
Robertson: je pense que j'ai (un peu pédant) le point est que l'UTF-8 et UTF-16 sont des représentations binaires pour le même jeu de caractères Unicode.
Oui, je ne dis pas que le code suivant ne fonctionnera pas, je dis ce que des "combinaisons" est censé représenter n'est pas augmenté en raison de ce que la contribution de la ponctuation, de l'UTF-8 ou UTF-16 caractères que peut fournir le mot de passe.

OriginalL'auteur idipous | 2011-06-21