资本化一句话

时间:2012-12-20 09:06:16

标签: ruby string activesupport

是否有一种方法(可能在某些来自Rails的库中)或一种简单的方法,可以将字符串的第一个字母大写,而不会影响字符串其余部分的大写/小写状态?我想用它来大写错误信息。我期待这样的事情:

"hello iPad" #=> "Hello iPad"

4 个答案:

答案 0 :(得分:3)

Ruby中有一个大写方法,但它会使字符串的其余部分保持不变。你可以自己编写:

class String
  def capitalize_first
    (slice(0) || '').upcase + (slice(1..-1) || '')
  end

  def capitalize_first!
    replace(capitalize_first)
  end
end

修改:添加了capitalize_first!变体。

答案 1 :(得分:2)

相当笨拙,但它有效:

str = "hello IiPad"
str[0] = str[0].upcase #or .capitalize

答案 2 :(得分:2)

感谢其他答案,我意识到了一些我需要注意的问题,并且没有内置的方法。我查看了Vitaly Zemlyansky暗示的Active Support of Rails中camelize的来源,它给了我一个提示:那就是使用正则表达式。我决定用这个:

sub(/./){$&.upcase}

答案 3 :(得分:-3)

试试这个

"hello iPad".camelize