是否有一个函数(或一小段代码)将字符串中的第一个字符转换为大写而不修改其他字符?
abc
→Abc
aBc
→ABc
aBC
→ABC
ABC
→ABC
(无变化)ABc
→ABc
(无变化)Abc
→Abc
(无变化)请注意String#capitalize
在情况2,3,4和5中不起作用;它将它们转换为Abc
,失去了原始的大写字母。 (ActiveSupport的titleize
也存在同样的问题。)
我也希望避免修改原始字符串。
答案 0 :(得分:2)
foo = "fOo"
newfoo = foo[0].upcase + foo[1..-1]
答案 1 :(得分:2)
答案 2 :(得分:2)
require 'unicode_utils'
"éclair".sub(/./, UnicodeUtils.upcase($&))
#=> "Éclair"
答案 3 :(得分:0)
怎么样:
string = "aBC".dup
string[0] = string[0].upcase