我正在尝试创建一个方法来大写字符串中的第二个单词。下面的代码有效,但我想知道是否有其他方法可以做到这一点:
def camelcase(string)
tmp = string.split
tmp[1].capitalize!
tmp.join('')
end
答案 0 :(得分:1)
def camelcase(string)
string.gsub(/\s(\w)/) { |match| $1.capitalize }
end
camelcase("foo bar baz") #=> "fooBarBaz"
或者您可能想看看camelcase
附带的ActiveSupport::Inflector
方法(参见:http://apidock.com/rails/String/camelize)
答案 1 :(得分:1)
根据文档,您可以使用“向块生成x,然后返回x”的点击。在这种情况下大写!在返回到方法链之前修改x,以便通过join进行进一步处理。
def camelcase(string)
string.split.tap { |words| words[1].capitalize! }.join
end
camelcase('foo bar baz')
=> "fooBarbaz"
答案 2 :(得分:1)
def camelcase(string)
string.sub(/\s.*/) { |s| s.delete(' ').capitalize}
end
puts camelcase("foo bar bas")
=> "fooBarbaz"
答案 3 :(得分:0)
试试这个:
s = "foo bar"
s.sub(/\s(\w)/) { $1.capitalize } # => "fooBar"