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

时间:2009-06-20 00:16:01

标签: ruby string uppercase lowercase

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

11 个答案:

答案 0 :(得分:1506)

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

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

同样,upcase将每个字母大写,capitalize将字符串的第一个字母大写,但小写其余字母:

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

如果要修改字符串,可以为这些方法添加感叹号:

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

有关详细信息,请参阅documentation for String

答案 1 :(得分:117)

您可以通过打开irb并运行:

找到String上可用的所有方法
"MyString".methods.sort

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

"MyString".own_methods.sort

我用它来找出关于物体的新的和有趣的东西,我可能不会知道它们存在。

答案 2 :(得分:38)

与@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非常敏感。

答案 3 :(得分:16)

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

"string".downcase

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

答案 4 :(得分:12)

...而且大写是:

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

答案 5 :(得分:11)

Rails Active Support gem提供upcasedowncaseswapcasecapitalize等方法以及国际化支持:

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

答案 6 :(得分:1)

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

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

答案 7 :(得分:1)

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

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

答案 8 :(得分:0)

自Ruby 2.4以来,内置full Unicode case mapping。资料来源:https://stackoverflow.com/a/38016153/888294。有关详细信息,请参阅Ruby 2.4.0文档:https://ruby-doc.org/core-2.4.0/String.html#method-i-downcase

答案 9 :(得分:0)

并不是每个人都能用,但这只是节省了我很多时间。我刚刚遇到了CSV返回“ TRUE或“ FALSE”的问题,所以我刚刚添加了VALUE.to_s.downcase ==“ true”,如果值是“ TRUE”则返回布尔值true,如果值是“ FALSE”则返回false ”,但仍适用于布尔值true和false。

答案 10 :(得分:0)

结合try方法以支持nil值:

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