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