大写字符串中的第二个字(ruby)

时间:2014-03-09 00:05:08

标签: ruby string capitalize

我正在尝试创建一个方法来大写字符串中的第二个单词。下面的代码有效,但我想知道是否有其他方法可以做到这一点:

def camelcase(string)
    tmp = string.split
    tmp[1].capitalize!
    tmp.join('')
end

4 个答案:

答案 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"