upcase
方法将整个字符串大写,但我只需要大写第一个字母。
此外,我需要支持几种流行的语言,如德语和俄语。
我该怎么做呢?
发布于 2015-11-10 04:16:36
好吧,这样我们就知道如何只大写第一个字母,而不去管其他的字母,因为有时这就是我们想要的:
['NASA', 'MHz', 'sputnik'].collect do |word|
letters = word.split('')
letters.first.upcase!
letters.join
end
=> ["NASA", "MHz", "Sputnik"]
调用capitalize
将导致["Nasa", "Mhz", "Sputnik"]
。
发布于 2016-05-20 09:47:27
Rails 5+
对于Active Support和Rails 5.0.0.beta4,您可以使用这两种方法之一:String#upcase_first
或ActiveSupport::Inflector#upcase_first
。
"my API is great".upcase_first #=> "My API is great"
"мария".upcase_first #=> "Мария"
"мария".upcase_first #=> "Мария"
"NASA".upcase_first #=> "NASA"
"MHz".upcase_first #=> "MHz"
"sputnik".upcase_first #=> "Sputnik"
查看"Rails 5: New upcase_first Method“了解更多信息。
发布于 2020-10-06 19:15:35
我的版本:
class String
def upcase_first
return self if empty?
dup.tap {|s| s[0] = s[0].upcase }
end
def upcase_first!
replace upcase_first
end
end
['NASA title', 'MHz', 'sputnik'].map &:upcase_first #=> ["NASA title", "MHz", "Sputnik"]
另请检查:
https://www.rubydoc.info/gems/activesupport/5.0.0.1/String%3Aupcase_first
https://stackoverflow.com/questions/3724913
复制相似问题