Ruby - 删除下划线并大写

Jun*_*Jun 8 ruby capitalize

好的,所以我试图删除下划线,如某些假期中所见(例如,fourth_of_july).然后我想把每个单词都大写.

预期成果:4th_of_july>七月四日

所以这是我的代码:

holiday_dec = {

:winter => {
   :christmas => ["Lights", "Wreath"],
   :new_years => ["Party Hats"]
 },
 :summer => {
   :fourth_of_july => ["Fireworks", "BBQ"]
 },
 :fall => {
   :thanksgiving => ["Turkey"]
 },
 :spring => {
   :memorial_day => ["BBQ"]
 }

}

def all_supplies_in_holidays(holiday_hash)

  holiday_hash.each do |seasons, holidays|

    holidays.each do |holidays, supplies|
      puts "#{seasons.to_s.capitalize}:"
      puts "  #{holidays.to_s.tr("_"," ").capitalize}: #{supplies.join(", ")}"
    end

  end

end

all_supplies_in_holidays(holiday_dec)
Run Code Online (Sandbox Code Playgroud)

Rah*_*tel 20

在Rails中你可以使用 titleize

'fourth_of_july'.titleize => "Fourth Of July"
Run Code Online (Sandbox Code Playgroud)

https://apidock.com/rails/Inflector/titleize


tay*_*low 7

我来这里寻找一种方法来修改带有下划线的字符串,使其更像类名。Rails 有String#classify.

irb> 'some_class_string'.classify
=> "SomeClassString"
Run Code Online (Sandbox Code Playgroud)


Eli*_*off 6

你可以用这个衬里

str.split('_').map(&:capitalize).join(' ')
Run Code Online (Sandbox Code Playgroud)

这需要一个字符串,str并将其分割为下划线,然后大写每个单词,然后将单词与空格连接在一起。例

"fourth_of_july".split('_') -> ["fourth", "of", "july"]
["fourth", "of", "july"].map(&:capitalize) -> ["Fourth", "Of", "July"]
["Fourth", "Of", "July"].join(' ') -> "Fourth Of July"
Run Code Online (Sandbox Code Playgroud)