web-dev-qa-db-ja.com

Rubyで文字列内の文字の#回の出現を見つける

私はRubyメソッド(1.9 ...)を探しています。このメソッドは、文字列内の文字の出現回数を見つけるのに役立ちます。最初の1つ。

例:「メラニーは初心者」文字「a」は2回出現します。これを見つけるために使用できるRubyメソッドはどうなりますか?

Ruby-doc.org を参照として使用しており、String: classscanメソッドが目を引きました。言葉遣いを理解するのは少し難しいので、scanの概念を本当に理解していません。

97
Melanie Shebel

Aの数だけが必要な場合:

puts "Melanie is a noob".count('a')  #=> 2

ドキュメント 詳細については。

133
steenslag

以前に尋ねられた質問からのこのリンクは役立つはずです Rubyで文字列をスキャンする

scanは、文字列内のすべての出現を配列として返すため、

"Melanie is a noob".scan(/a/)

戻ります

["a","a"]
49
Shiv

String.index() メソッドを探しています:

Str内の指定された部分文字列またはパターン(regexp)の最初の出現のインデックスを返します。見つからない場合はnilを返します。 2番目のパラメーターが存在する場合、検索を開始する文字列内の位置を指定します。

"hello".index('e')             #=> 1
"hello".index('lo')            #=> 3
"hello".index('a')             #=> nil
"hello".index(?e)              #=> 1
"hello".index(/[aeiou]/, -3)   #=> 4
29
Georg Schölly