50 votes

Options de nombre de chaînes

D'après la documentation de String#count je comprends le premier exemple, mais je ne comprends pas le reste des exemples :

 a = "hello world"
a.count "lo"            #=> 5
a.count "lo", "o"       #=> 2
a.count "hello", "^l"   #=> 4
a.count "ej-m"          #=> 4

Toute explication sera utile.

37voto

lal00 Points 1102

Si vous passez plus d'un paramètre à compter, il utilisera l'intersection de ces chaînes et l'utilisera comme cible de recherche :

 a = "hello world"
a.count "lo"            #=> finds 5 instances of either "l" or "o"
a.count "lo", "o"       #=> the intersection of "lo" and "o" is "o", so it finds 2 instances
a.count "hello", "^l"   #=> the intersection of "hello" and "everything that is not "l" finds 4 instances of either "h", "e" or "o"
a.count "ej-m"          #=> finds 4 instances of "e", "j", "k", "l" or "m" (the "j-m" part)

9voto

FMc Points 22663

Chaque argument définit un ensemble de caractères. L' intersection de ces ensembles détermine l'ensemble global que count utilise pour calculer un décompte.

 a = "hello world"

a.count "lo"            # l o       => 5
a.count "lo", "o"       # o         => 2

Et ^ peut être utilisé pour la négation (toutes les lettres en hello , sauf l )

 a.count "hello", "^l"   # h e o     => 4

Les plages peuvent être définies avec - :

 a.count "ej-m"          # e j k l m => 4

4voto

Dyaniyal Wilson Points 608

Utiliser gsub dans une chaîne

 a = "hello world hello hello hello hello world world world"
2.1.5 :195 > a.gsub('hello').count
=> 5 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X