如何在Ruby中将字符串转换为小写或大写

How to convert a string to lower or upper case in Ruby

如何在Ruby中将字符串转换为小写或大写?


Ruby有几种方法可以改变字符串的大小写。要转换为小写,请使用downcase

1
"hello James!".downcase    #=>"hello james!"

类似地,upcase将每个字母大写,capitalize将字符串的第一个字母大写,但其余字母的值较低:

1
2
3
"hello James!".upcase      #=>"HELLO JAMES!"
"hello James!".capitalize  #=>"Hello james!"
"hello James!".titleize    #=>"Hello James!"

如果要就地修改字符串,可以向以下任何方法添加感叹号:

1
2
3
string ="hello James!"
string.downcase!
string   #=>"hello james!"

有关详细信息,请参阅文档中的字符串。


通过打开IRB并运行以下命令,可以找到字符串上所有可用的方法:

1
"MyString".methods.sort

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

1
"MyString".own_methods.sort

我用这个发现一些新的和有趣的关于我可能不知道存在的物体的事情。


就像@ender提到的,如果国际化是一个问题,那么unicode-utils gem就足够了。

1
2
3
4
5
6
$ gem install unicode_utils
$ irb
> require 'unicode_utils'
=> true
> UnicodeUtils.downcase("FEN B?L?MLER?", :tr)
=>"fen bilimleri"

Ruby2.4中的字符串操作现在对Unicode敏感。


ruby downcase方法返回一个字符串,其大写字母替换为小写字母。

1
"string".downcase

https://ruby doc.org/core-2.1.0/string.html method-i-downcase


…大写是:

1
2
"Awesome String".upcase
=>"AWESOME STRING"

Rails Active Support Gem为upcasedowncaseswapcasecapitalize等提供国际化支持的方法:

1
2
3
4
5
6
gem install activesupport
irb -ractive_support/core_ext/string
"STRING  á??à?éêíó??ú".mb_chars.downcase.to_s
 =>"string  áa?à?éêíó??ú"
"string  áa?à?éêíó??ú".mb_chars.upcase.to_s
=>"STRING  á??à?éêíó??ú"


你可以找到像"strings".methods这样的字符串方法。可以将字符串定义为upcasedowncasetitleize。例如,

1
2
3
"hii".downcase
"hii".titleize
"hii".upcase

因为Ruby2.4有一个内置的完整Unicode大小写映射。资料来源:https://stackoverflow.com/a/38016153/888294。有关详细信息,请参阅Ruby 2.4.0文档:https://ruby doc.org/core-2.4.0/string.html method-i-downcase