我只想把第一个字母大写,然后保留其他字符。
例如:
"fooBar".titleize
返回"Foo Bar"
。应该返回 FooBar 。
"foo_Bar".capitalize
返回"Foo_bar"
应返回 Foo_Bar 。
我能做到这一点吗?
答案 0 :(得分:4)
irb(main):001:0> s = "foo_Bar"
=> "foo_Bar"
irb(main):002:0> s[0] = s[0].upcase
=> "F"
irb(main):003:0> s
=> "Foo_Bar"
或使用正则表达式进行就地替换:
irb(main):001:0> s = "foo_Bar"
=> "foo_Bar"
irb(main):002:0> s.sub!(/^\w/) {|x| x.upcase}
=> "Foo_Bar"
答案 1 :(得分:4)
class String
def fazzinize
first, *last = self.split("_")
[first.capitalize, *last].join("_")
end
end
"fooBar".fazzinize
#=> "Foobar"
"foo_Bar".fazzinize
#=> "Foo_Bar"
<强> UPD 强>
如果是拼写错误:
“fooBar”.titleize返回“Foo Bar”。应该返回Foobar - &gt; FooBar的
然后@Mchi是对的
class String
def fazzinize
self[0] = self[0].upcase; self;
end
end
答案 2 :(得分:1)
irb(main):001:0> s = "foo_Bar"
=> "foo_Bar"
irb(main):002:0> s1 = s.slice(0,1).capitalize + s.slice(1..-1)
=> "Foo_Bar"
答案 3 :(得分:0)
只需substitute第一个字符,其大写版本使用块。
"fooBar".sub(/^./) { |char| char.upcase }