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

Hea*_*ser 1081 ruby string lowercase uppercase

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

Sop*_*ert 1553

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

"hello James!".downcase    #=> "hello james!"
Run Code Online (Sandbox Code Playgroud)

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

"hello James!".upcase      #=> "HELLO JAMES!"
"hello James!".capitalize  #=> "Hello james!"
"hello James!".titleize    #=> "Hello James!"
Run Code Online (Sandbox Code Playgroud)

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

string = "hello James!"
string.downcase!
string   #=> "hello james!"
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅字符串文档.

  • 通常,"爆炸方法"会返回"nil"; 如果要更改对象,则应使用它们,而不是要将值存储在另一个变量中. (11认同)
  • `.titleize`来自Rails.在ruby`String`文档中找不到它 (6认同)
  • 小心!在我看来喜欢使用爆炸"!" 如果没有大写字母,则返回nil.所以str ="this".downcase!返回str = nil (3认同)
  • 需要从这个答案中删除`titleize`或者至少声明它是一个Rails方法. (3认同)
  • 在我回答之后我才考虑过这个问题,但无论如何我都会花时间来回答它.谢谢! (2认同)

mla*_*bie 121

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

"MyString".methods.sort
Run Code Online (Sandbox Code Playgroud)

有关特定字符串的可用方法列表:

"MyString".own_methods.sort
Run Code Online (Sandbox Code Playgroud)

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

  • 这个答案的唯一问题是#own_methods似乎不存在.它来自Irb扩展吗? (12认同)
  • 嗨 - 我以为我正在用#own_methods学习新东西,但它对我来说也不存在.但是,我通常会:("MyString".methods - Object.merhods).sort (12认同)
  • 非常类似于引用的补丁@fakeleft,我在我的.irbrc文件中有它.我用它修改对象并创建#own_methds:(obj.methods - obj.class.superclass.instance_methods).sort (2认同)

nur*_*tin 39

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

$ gem install unicode_utils
$ irb
> require 'unicode_utils'
=> true
> UnicodeUtils.downcase("FEN B?L?MLER?", :tr)
=> "fen bilimleri"
Run Code Online (Sandbox Code Playgroud)

Ruby 2.4中的字符串操作现在对unicode敏感.


Hea*_*ser 18

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

"string".downcase
Run Code Online (Sandbox Code Playgroud)

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

  • 虽然从技术上讲这确实有助于回答这个问题,但它确实应该更具启发性.或许显示结果?也许是文档的链接? (2认同)

mla*_*bie 12

......大写是:

"Awesome String".upcase
=> "AWESOME STRING"
Run Code Online (Sandbox Code Playgroud)


小智 11

Rails的活动支承宝石提供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  ÁÂÃÀÇÉÊÍÓÔÕÚ"
Run Code Online (Sandbox Code Playgroud)


Raj*_*han 8

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

'TESTING'.swapcase #=> testing
'testing'.swapcase #=> TESTING
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!这正是我一直在寻找的。混合大小写的字符串可能会让这个方法的作用更加明显... `'Testing'.swapcase #=> tESTING` (2认同)