2013-05-01 3 views
0

"카운트"방법이 The string count() method에서 어떻게 작동하는지 알고 있습니다.루비에서 카운트가 어떻게 작동합니까?

하지만 그것은 배열에 (오히려 편지 쓰기보다) 단어를 계산 어떻게 이해할 수 없다 :

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")하면 반환 다섯, 왜하지 않습니다 find_frequency("to be or not to be", "to") 반환 칠 (t, 오, 오, 오, t, t, o)?

답변

2

Array

documentation, count(p1)을 따르면 요소의 수를 돌려줍니다. 인수가 주어지면, obj와 같은 원소의 수를 센다. 블록이 주어지면 실제 값을 산출하는 요소의 수를 센다.

귀하의 경우 sentence.downcase.split["to", "be", "or", "not", "to", "be"]입니다. 여기에 "to"과 같은 두 개의 배열 요소가 있으므로 2을 얻습니다. Stringdocumentation에서

, count(*args)

각 other_str 매개 변수는 계산 문자의 집합을 정의합니다. 이 세트의 공통점은 str에서 카운트 할 문자를 정의합니다. 캐럿 (^)으로 시작하는 other_str은 무효화됩니다. 시퀀스 c1-c2는 c1과 c2 사이의 모든 문자를 의미합니다. 우리가 StringXString 매개 변수 페이지 주어진 부정 경우, 전화 count를 따로 두는 경우에

X페이지의 문자 중 하나와 일치하는 문자의 수를 반환합니다. 귀하의 경우에는

, 당신은 "hello world"에서 "llool""lo" 일치해야 즉 5

+0

감사합니다! 특히 [apidock] (http://apidock.com)에 대한 링크. – Evgeny

+0

여기에 가입 할 수 있습니까? - http://chat.stackoverflow.com/rooms/27184/ruby-conceptual? –

관련 문제