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

1040

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

Ваш Ответ

8   ответов
0
1492

вать в нижний регистр, используйте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!"

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

titleize должен быть удален из этого ответа или по крайней мере заявить, что это метод Rails.
Я подумал об этом только после того, как ответил на него, но в любом случае дам вам должное, что вы нашли время ответить на него. Спасибо! Heat Miser
.titleize это от Rails. Не могу найти его в рубинеString документация
Часто "методы взрыва" вернутьnil; вы должны использовать их, если хотите изменить объект на месте, а не если вы хотите сохранить значение в другой переменной.
Осторожно! выглядит как использование взрыва & quot;! & quot; вернет ноль, если нет заглавной буквы. so str = "this" .downcase! возвращает str = ноль
16

Рубинdowncase Метод возвращает строку, в которой заглавные буквы заменяются строчными.

"string".downcase

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

116

доступные для String, открыв irb и выполнив:

"MyString".methods.sort

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

"MyString".own_methods.sort

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

Привет. Я думал, что узнал что-то новое с помощью #own_methods, но для меня это тоже не существует. Тем не менее, я обычно говорю: ("MyString" .methods - Object.merhods) .sort
То же самое. @mlambie может иметь что-то вродеthis monkey patch установить где-нибудь.
Единственная проблема с этим ответом состоит в том, что #own_methods, кажется, не существует. Это из расширения Irb?
@Laser Методы для String, в частности, являются теми, которые определены в самом классе String. Методы, доступные в String, включают методы, определенные в его суперклассе (ах).
Очень похоже на патч, на который ссылается @fakeleft, и он есть в моем файле .irbrc. Я исправляю объект и создаю #own_methds следующим образом: (obj.methods - obj.class.superclass.instance_methods) .sort
38

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

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

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

11

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  ÁÂÃÀÇÉÊÍÓÔÕÚ"
12

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

"strings".methods Вы можете определить строку какupcase, downcase, titleize. For Example,

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

Похожие вопросы