Как преобразовать строку в нижний или верхний регистр в Ruby

Как взять строку и преобразовать ее в нижний или верхний регистр в Ruby?

7 ответов


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!"

относятся к документация для String для получения дополнительной информации.


вы можете узнать все методы, доступные в строке, открыв irb и запустив:

"MyString".methods.sort

и для списка методов, доступных для строк, в частности:

"MyString".own_methods.sort

Я использую это, чтобы узнать новые и интересные вещи об объектах, о существовании которых я мог бы и не знать.


Как упоминалось @endeR, если интернационализация вызывает озабоченность, драгоценный камень unicode_utils более чем адекватен.

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

строковые манипуляции в Ruby 2.4 теперь чувствительны к юникоду.


Рубин downcase метод возвращает строку с прописными буквами, замененными строчными буквами.

"string".downcase

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


... и верхний регистр:

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

рельсы активная поддержка gem обеспечивает upcase, downcase, swapcase,capitalize, etc. методы с поддержкой интернационализации:

gem install activesupport
irb -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