将所有单词的首字母大写并保持已经资本化

Kat*_*han 3 ruby string ruby-on-rails ruby-on-rails-4

使用rails 4,无法在此找到文档.我想将字符串中每个单词的第一个字母大写,但保留已经大写的字母.

我想要以下输出:

how far is McDonald's from here? => How Far Is McDonald's From Here?

MDMA is also known as molly => MDMA Is Also Known As Molly

i drive a BMW => I Drive A BMW
Run Code Online (Sandbox Code Playgroud)

我以为.titleize会这样做,但那会BMW变成Bmw.感谢您的任何帮助.

pot*_*hin 5

您可以尝试以下方法:

a.split.map{|x| x.slice(0, 1).capitalize + x.slice(1..-1)}.join(' ')
# or
a.split.map{|x| x[0].upcase + x[1..-1]}.join(' ')
Run Code Online (Sandbox Code Playgroud)
#=> ["MDMA Is Also Known As Molly",
     "How Far Is McDonald's From Here?",
     "I Drive A BMW"]
Run Code Online (Sandbox Code Playgroud)

示范