2009-03-01 1 views
5

apprentissage Occupé Ruby ... la documentation ont un exemple:Le nombre de chaînes() Méthode

"Bonjour tout le monde" .count ("lo", "o") que le retour 2 comment est-ce que le retour 2?

Dans mon exemple, j'ai: met "Lennie" .count ("Le", "ie") que le retour 2.

Comment ne compte travail à cet égard?

Répondre

14

"hello world".count("lo") renvoie cinq. Il a correspondu aux troisième, quatrième, cinquième, huitième et dixième caractères. Appelons cet ensemble un.

"hello world".count("o") renvoie deux. Il a correspondu aux cinquième et huitième caractères. Appelons cet ensemble deux.

"hello world".count("lo", "o") compte l'intersection des ensembles un et deux.

Le intersection est un troisième ensemble contenant tous les éléments de l'ensemble deux qui sont également dans l'ensemble un. Dans notre exemple, les deux ensembles un et deux contiennent les cinquième et huitième caractères de la chaîne. C'est deux caractères au total. Ainsi, count renvoie deux.

0

Si vous comptez plus d'un argument, il ne compte que les lettres qui figurent dans tous les arguments. Donc, dans votre premier exemple, ça ne compte que o. Dans votre deuxième exemple, il ne compte que e.

1
arr = [1, 2, 3] 
arr.length # => 3 
arr.size # => 3 
arr.count # => 3 
h = { a: 1, b: 2 } 
h.length # => 2 
h.size # => 2 
h.count # => 2 
str = 'name' 
str.length # => 4 
str.size # => 4 

str.count ne fonctionnera pas sous forme de chaîne ne comprend pas Enumerable