7
votes

Compter le nombre d'occurrences de caractères de la matrice dans la chaîne?

Je suis d'écriture du code pour déterminer si un mot de passe contient suffisamment de caractères de ponctuation.

Comment puis-je compter le nombre d'occurrences de tous les caractères d'un ensemble?

quelque chose sur ces lignes: xxx

points bonus pour une solution linq élégante.


5 commentaires

Comment donnez-vous des points bonus?


@Oliver: Je suppose que Black Knight accordera une prime (après la période d'attente de 24 heures).


Je pensais à l'attribution des upvotes. Et bien sûr ma propre gratitude personnelle;). Cependant, si les gens pensent qu'une réponse mérite une prime, je l'attribuerai un.


Stackoverflow.com/a/12899943/706456


Peut-être que cela aidera Stackoverflow.com/questions/11569951/...


4 Réponses :


1
votes

Vous pouvez compter comme ceci xxx pré>

il retournera 3. p>

à l'aide de LINQ P>

int count="he!l!l!o".Count(x => x == '!');


0 commentaires

17
votes

Comment puis-je compter le nombre d'occurrences de tous les caractères d'un ensemble? xxx


4 commentaires

+1, slick ..........., pour ceux qui comme moi, sa forme plus simple serait: var temp = mot de passe. Code>


Merci pour l'explication. Je me demandais simplement quelle serait la forme plus simple.


@Carra, oui à seulement 6 minutes.


Que et c'est aussi plus efficace :)



1
votes

Voici un exemple: xxx


0 commentaires

1
votes

Qu'en est-il d'un Regexp xxx

4 = min ne pas Word / chiffre Char

8 = minute de mot de passe min / p>

LINQ peut être considéré comme élégant (ce n'est pas IMHO) Mais à quel prix de performance?

-----------------------------------

Si vous souhaitez faire correspondre un sous-ensemble de caractères, vous devez remplacer \ w avec []

[] des caractères

Certains caractères doivent être échappés avec \

dans votre cas: [# \ * \ $ \ $ \? + - \ ^ \ <\> \ [\] ~ \ (\) &]

là, vous pouvez trouver un Feuille de triche d'expression régulière


2 commentaires

Merci. Les regex sont puissants mais je ne suis pas très bon pour eux. C'est important dans ce cas cependant, mais ne correspond à la ponctuation qu'à partir d'un ensemble prédéfini, pas seulement à toutes les ponctuations. Comment ferais-je cela avec une regex?


@Blackknight vient de mettre à jour ma réponse. Je ne suis pas bon à l'expression régulière non plus. Je trouve très utile cette feuille de triche: github.com/shadowbq/cheat-sheets/blob/master/regex/... Je l'ai imprimée et c'est toujours près de mon bureau!