Ruby有几个用于更改字符串大小写的方法。要转换为小写,请使用downcase
:
"hello James!".downcase #=> "hello james!"
同样,upcase
会将每个字母都转化为大写,而capitalize
仅将字符串的第一个字母转化为大写,其余字母转化为小写:
"hello James!".upcase #=> "HELLO JAMES!"
"hello James!".capitalize #=> "Hello james!"
"hello James!".titleize #=> "Hello James!" (Rails/ActiveSupport only)
如果你想原地修改一个字符串,你可以在任何这些方法上加上感叹号:string = "hello James!"
string.downcase!
string #=> "hello james!"
更多信息请参考String文档.
你可以通过打开irb并运行以下命令来查找字符串可用的所有方法:
"MyString".methods.sort
此外,这里提供了字符串可用方法的列表:
"MyString".own_methods.sort
我使用这个方法来发现关于对象的新奇有趣的事情,否则我可能不知道它们存在。
如 @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。 Ruby的downcase
方法返回一个字符串,其中所有大写字母都被替换为小写字母。
"string".downcase
https://ruby-doc.org/core-2.1.0/String.html#method-i-downcase
...并且大写字母是:
"Awesome String".upcase
=> "AWESOME STRING"
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
'Testing'.swapcase #=> tESTING
- Matthew"strings".methods
方法找到字符串的方法。
你可以使用upcase
、downcase
和titleize
来定义字符串。
例如,"hii".downcase
"hii".titleize
"hii".upcase
虽然不是适用于每种情况,但这个方法刚刚帮我省了很多时间。我遇到了一个CSV返回“TRUE”或“FALSE”的问题,所以我只需添加VALUE.to_s.downcase ==“true”,如果值为“TRUE”,则返回布尔值true,如果值为“FALSE”,则返回false,但仍可用于布尔值true和false。
自Ruby 2.4开始,内置了全Unicode大小写映射。来源:https://dev59.com/ZHI-5IYBdhLWcg3wVWti#38016153。有关详细信息,请参阅Ruby 2.4.0文档:https://ruby-doc.org/core-2.4.0/String.html#method-i-downcase
nil
;如果你想就地修改一个对象,而不是将值存储在另一个变量中,你应该使用它们。 - Sophie Alpert'coração'.upcase
会生成'CORAçãO'
。建议使用一些宝石库如“unicode_utils”,“activesupport”或“Unicode”。 - Fernando Basso