我如何把一个字符串转换成Ruby中的小写或大写?


当前回答

结合try方法,支持nil值:

'string'.try(:upcase)
'string'.try(:capitalize)
'string'.try(:titleize)

其他回答

Rails Active Support gem提供了upcase, downcase, swapcase,capitalize等国际化支持方法:

gem install activesupport
irb -ractive_support/core_ext/string
"STRING  ÁÂÃÀÇÉÊÍÓÔÕÚ".mb_chars.downcase.to_s
 => "string  áâãàçéêíóôõú"
"string  áâãàçéêíóôõú".mb_chars.upcase.to_s
=> "STRING  ÁÂÃÀÇÉÊÍÓÔÕÚ"

swapcase方法将字符串中的大写字母转换为小写字母,将小写字母转换为大写字母。

'TESTING'.swapcase #=> testing
'testing'.swapcase #=> TESTING

你可以找到strings方法,比如"strings"。methods 你可以将字符串定义为大写,小写,标题。 例如,

"hii".downcase
"hii".titleize
"hii".upcase

就像@endeR提到的,如果国际化是一个问题,unicode_utils gem就足够了。

$ gem install unicode_utils
$ irb
> require 'unicode_utils'
=> true
> UnicodeUtils.downcase("FEN BİLİMLERİ", :tr)
=> "fen bilimleri"

Ruby 2.4中的字符串操作现在是unicode敏感的。

你可以通过打开irb并运行以下命令来找到String中所有可用的方法:

"MyString".methods.sort

对于字符串可用的方法列表:

"MyString".own_methods.sort

我用它来发现关于物体的新的和有趣的东西,否则我可能不知道它们的存在。