簡體   English   中英

計數如何在Ruby中工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM