-5

如何打印范围内的字母?

例如,如果我有一个单词“ruby”,我希望这些字母仅在字母落在 a - h 之类的范围内时打印在另一个字母的下方。

4

6 回答 6

2

我会使用:

puts 'ruby'.scan(/[a-h]/)
# >> b

或者:

puts 'ruby'.chars.select{ |c| c[/[a-h]/] }
# >> b

scan非常适合从字符串中挑选出所有匹配的模式。

于 2013-06-28T14:24:46.860 回答
1
puts "rubyruby".chars.grep('a'..'h').join("\n")
于 2013-06-28T14:22:49.047 回答
1
"ruby".chars.each do |x|
   if ('a'..'h').include?(x)
      print x
    end
end
于 2013-06-28T14:11:52.020 回答
1
"ruby".each_char {|c| puts c if [*'a'..'h'].include? c}
于 2013-06-28T14:12:48.263 回答
1

puts 'ruby'.chars.select{|c| ('a'..'h').cover?(c)}.join("\n")

于 2013-06-28T14:18:30.307 回答
0

有很多方法可以做到这一点,例如

'ruby'.tr("^a-h",'')

或者

'ruby'.gsub(/[^a-h]/,'')

我可能会使用 gsub - 我从来不记得哪种语法tr可以理解

于 2013-06-28T14:21:14.603 回答