首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Ruby中大写字符串中的第一个字母

如何在Ruby中大写字符串中的第一个字母
EN

Stack Overflow用户
提问于 2010-09-16 16:24:21
回答 4查看 148.8K关注 0票数 151

upcase方法将整个字符串大写,但我只需要大写第一个字母。

此外,我需要支持几种流行的语言,如德语和俄语。

我该怎么做呢?

EN

回答 4

Stack Overflow用户

发布于 2015-11-10 04:16:36

好吧,这样我们就知道如何只大写第一个字母,而不去管其他的字母,因为有时这就是我们想要的:

代码语言:javascript
复制
['NASA', 'MHz', 'sputnik'].collect do |word|
  letters = word.split('')
  letters.first.upcase!
  letters.join
end

 => ["NASA", "MHz", "Sputnik"]

调用capitalize将导致["Nasa", "Mhz", "Sputnik"]

票数 18
EN

Stack Overflow用户

发布于 2016-05-20 09:47:27

Rails 5+

对于Active Support和Rails 5.0.0.beta4,您可以使用这两种方法之一:String#upcase_firstActiveSupport::Inflector#upcase_first

代码语言:javascript
复制
"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“了解更多信息。

票数 15
EN

Stack Overflow用户

发布于 2020-10-06 19:15:35

我的版本:

代码语言:javascript
复制
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://www.rubydoc.info/gems/activesupport/5.0.0.1/ActiveSupport/Inflector#upcase_first-instance_method

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3724913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档