Как преобразовать строку в нижний или верхний регистр в 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
рельсы активная поддержка 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