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

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

766395 次浏览

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

"string".downcase

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

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

…大写是:

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

您可以通过打开irb并运行来找出String上可用的所有方法:

"MyString".methods.sort

对于可用于字符串的方法列表,特别是:

"MyString".own_methods.sort

我用它来发现关于对象的新的和有趣的事情,否则我可能不知道存在。

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

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

Ruby 2.4中的字符串操作现在对Unicode敏感。

Rails Active Support gem提供upcasedowncaseswapcasecapitalize等具有国际化支持的方法:

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

从Ruby 2.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

您可以找到类似"strings".methods的字符串方法您可以将字符串定义为upcasedowncasetitleize。例如,

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

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

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

我只是遇到了CSV返回“TRUE”或“FALSE”的问题,所以我只是添加了VALUE.to_s.downcase==“true”,如果值为“TRUE”则返回布尔值true,如果值为“FALSE”则返回false,但仍然适用于布尔值true和false。

结合try方法,支持nil值:

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