gpt4 book ai didi

Ruby 将每个单词的第一个字母大写

转载 作者:数据小太阳 更新时间:2023-10-29 06:16:55 25 4
gpt4 key购买 nike

我需要让每个单词的第一个字符大写,其余的小写......

manufacturer.MFA_BRAND.first.upcase

只是设置第一个字母大写,但我需要这个:

ALFA ROMEO => Alfa Romeo
AUDI => Audi
BMW => Bmw
ONETWO THREE FOUR => Onetwo Three Four

最佳答案

在 Rails 中:

"kirk douglas".titleize => "Kirk Douglas"
#this also works for 'kirk_douglas'

没有 Rails:

"kirk douglas".split(/ |\_/).map(&:capitalize).join(" ")

#OBJECT IT OUT
def titleize(str)
str.split(/ |\_/).map(&:capitalize).join(" ")
end

#OR MONKEY PATCH IT
class String
def titleize
self.split(/ |\_/).map(&:capitalize).join(" ")
end
end

w/o Rails(加载 rails 的 ActiveSupport 以将 #titleize 方法修补为 String)

require 'active_support/core_ext'
"kirk douglas".titleize #=> "Kirk Douglas"

(一些)由#titleize 处理的字符串用例

  • “柯克·道格拉斯”
  • “柯克道格拉斯”
  • “柯克-道格拉斯”
  • “柯克道格拉斯”
  • “柯克道格拉斯”

#titleize 陷阱

Rails 的 titleize 会将破折号和下划线之类的东西转换为空格,并可能产生其他意想不到的结果,特别是在 @JamesMcMahon 指出的区分大小写的情况下:

"hEy lOok".titleize #=> "H Ey Lo Ok"

因为它是用来处理像这样的驼峰式代码的:

"kirkDouglas".titleize #=> "Kirk Douglas"

要处理这种边缘情况,您可以在运行#titleize 之前先使用#downcase 清理您的字符串。当然,如果你这样做,你将消除任何驼峰式单词分隔:

"kirkDouglas".downcase.titleize #=> "Kirkdouglas"

关于Ruby 将每个单词的第一个字母大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13520162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com