如何打印范围内的字母?
例如,如果我有一个单词'ruby',我希望只有当字母落在-h等范围内时才能将字母打印在另一个字母下面。
答案 0 :(得分:2)
我会用:
puts 'ruby'.scan(/[a-h]/)
# >> b
或者:
puts 'ruby'.chars.select{ |c| c[/[a-h]/] }
# >> b
scan
非常适合从字符串中挑选出所有匹配的模式。
答案 1 :(得分:1)
"ruby".chars.each do |x|
if ('a'..'h').include?(x)
print x
end
end
答案 2 :(得分:1)
"ruby".each_char {|c| puts c if [*'a'..'h'].include? c}
答案 3 :(得分:1)
puts 'ruby'.chars.select{|c| ('a'..'h').cover?(c)}.join("\n")
答案 4 :(得分:1)
puts "rubyruby".chars.grep('a'..'h').join("\n")
答案 5 :(得分:0)
有很多方法可以做到这一点,例如
'ruby'.tr("^a-h",'')
或
'ruby'.gsub(/[^a-h]/,'')
我可能会使用gsub - 我永远不会记得tr
理解哪种语法