在ruby中怎么大写首字母?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (60)

upcase方法可以整个字符串大写。

但我只需要大写首字母。

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

我该怎么做?

提问于
用户回答回答于

这取决于使用的Ruby版本。

2.4及更高版本

Ruby可以支持Unicode案例映射。

"мария".capitalize #=> Мария

2.3及更低版本

"maria".capitalize #=> "Maria"
"мария".capitalize #=> мария

问题是,它只是做不到你想做的,比如俄语转换

"мария".mb_chars.capitalize.to_s # requires ActiveSupport::Multibyte

我觉得你只能安装Unicode然后像这样使用它:

require 'unicode'

Unicode::capitalize("мария") #=> Мария

1.8版本

首先,

#!/usr/bin/env ruby

puts "мария".capitalize

invalid multibyte char (US-ASCII),同时:

#!/usr/bin/env ruby
#coding: utf-8

puts "мария".capitalize

用户回答回答于

将字符串第一个单词的首字母大写

"kirk douglas".capitalize
#=> "Kirk douglas"

将每个单词的首字母大写

在Rails中:

"kirk douglas".titleize
=> "Kirk Douglas"

"kirk_douglas".titleize
=> "Kirk Douglas"    

ruby:

"kirk douglas".split(/ |\_|\-/).map(&:capitalize).join(" ") 
#=> "Kirk Douglas"

在Rails之外,使用Titleize方法:

require 'active_support/core_ext'
"kirk douglas".titleize #or capitalize

扫码关注云+社区