[英]How does count work in Ruby
我理解方法“count”是如何工作的,來自string count()方法 。
但我無法理解它是如何計算數組中的單詞(而不是字母):
def find_frequency(sentence, word)
sentence.downcase.split.count(word.downcase)
end
find_frequency("to be or not to be", "to") # => 2
# same as ["to", "be", "or", "not", "to", "be"].count("to")
"hello world".count("lo") # => 5
如果"hello world".count("lo")
返回5,為什么find_frequency("to be or not to be", "to")
返回7(t,o,o,o,t,t,o )?
根據文檔 , count(p1)
為Array
返回元素的數量。 如果給出參數,則計算等於obj的元素數。 如果給出了一個塊,則計算產生真值的元素數。
在你的情況下, sentence.downcase.split
給你["to", "be", "or", "not", "to", "be"]
。 在這里,你有兩個等於"to"
數組元素,這就是你獲得2
的原因。
從String
的文檔中, count(*args)
每個other_str參數定義要計數的一組字符。 這些集合的交集定義了要在str中計數的字符。 任何以插入符號(^)開頭的other_str都將被否定。 序列c1-c2表示c1和c2之間的所有字符。
如果我們放棄否定情況,給定一個String
參數p ,對String
x的調用count
將返回x中與p的一個字符匹配的字符數 。
在你的情況下,你在"hello world"
有"llool"
"hello world"
匹配"lo"
,即5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.