如何在字符串中出现所有元音及其索引?
示例:str ="rohan"我想要一个像{1 =>'o',3 =>'a'}的结果
在ruby中是否有任何方法可以这样做,还是我必须为此编写方法?
我不会在这里使用正则表达式:
VOWELS = %w(a e i o u)
str = "rohan"
str.each_char.with_index.select { |c, _i| VOWELS.include? c }.to_h
#=> {"o"=>1, "a"=>3}
Run Code Online (Sandbox Code Playgroud)
或者如果您的Ruby版本没有to_h:
str.each_char.with_index.each_with_object({}) do |(c, i), h|
h[i] = c if VOWELS.include?(c)
end
#=> {1=>"o", 3=>"a"}
Run Code Online (Sandbox Code Playgroud)
你可以和$~(MatchData)一起使用String#scan:
hash = {}
str.scan(/[aeiou]/){|m| hash[$~.begin(0)] = m }
puts hash
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2470 次 |
| 最近记录: |