LoginSignup
11
18

More than 3 years have passed since last update.

countメソッドの様々な使い方(Ruby)

Last updated at Posted at 2019-06-30

countメソッドを使う機会があり、せっかくなので色々な使い方をCLIアプリ上で試してみました。備忘録として記します。
まだまだ勉強中なので、間違っている点などありましたら、コメントいただけると嬉しいです!

1.要素の合計をカウント

下記では、配列の中に花の名前が入っていて、それの合計値をカウントしてます。

practice.rb
flower = ["dandelion", "hydrangea", "lily", "rose", "lavender", "sunflower", "lily"]
puts flower.count

#result => 7

2.一致要素の数をカウント

配列編

countの引数に指定した要素と一致するものの数をカウント

practice.rb
flower = ["dandelion", "hydrangea", "lily", "rose", "lavender", "sunflower", "lily"]
puts flower.count("lily")

#result => 2

num =[1,1,2,3,4,4,4]
puts num.count(4)

#result => 3

以下のように、計算結果に一致したものもカウントできます。

practice.rb
num =[1,1,2,3,4,4,4]
puts num.count{|n| n%2 ==0}

#result => 4

文字列編

ちなみに配列ではなく、文字列要素との一致もカウントできます。

practice.rb
string = "ある道を通り過ぎた道端さん"
puts string.count("道")

#result => 2

"道端"さんだけを取り出したい場合は・・?

practice.rb
string = "ある道を通り過ぎた道端さんと道端さん"
puts string.count("道端")

#result => 5

このようにcountメソッドを使用すると、 "道"と"端"が含まれている文字を全てcountします。

なので、"道端"さんだけを取り出したいときは、scanメソッドで文字を指定し、指定した文字がいくつ含まれているかをlengthメソッドでカウントします。
※scanメソッドで終わってしまうと"道端"さんの数だけその文字で返ってきます。

practice.rb
string = "ある道を通り過ぎた道端さんと道端さん"
puts string.scan("道端")

#result => 
道端 
道端


string = "ある道を通り過ぎた道端さんと道端さん"
puts string.scan("道端").length

#result => 2
11
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
18