yuuki blog

プログラミング をアプトプットしています。

任意の文字列から指定文字列を数える方法 scan Ruby

任意の文字列で
"hi"がいくつあるか数えてその数を出力するメソッドを作ります。

出力例:

count_hi('abc hi ho') → 1
count_hi('ABChi hi') → 2
count_hi('hihi') → 2

 

def cunt_hi(str)
   puts str.scan("hi").length
end

puts "hiの数は"
hi = gets.to_s
cunt_hi(hi)

変数strに格納された文字列に"hi"がいくつあるか数える為、scanメソッドを使用します。


 "foobar".scan(/../)               # => ["fo", "ob", "ar"]
 "foobar".scan("o")                # => ["o", "o"]
 "foobarbazfoobarbaz".scan(/ba./)  # => ["bar", "baz", "bar", "baz"]

 "foobar".scan(/(.)/) # => [["f"], ["o"], ["o"], ["b"], ["a"], ["r"]]

 "foobarbazfoobarbaz".scan(/(ba)(.)/) # => [["ba", "r"], ["ba", "z"], ["ba", "r"], ["ba", "z"]]

あとは配列の中の要素の数をlengthメソッドで数えます。