Преобразование строки в нижний регистр

Ruby:
Преобразование строки в нижний регистр

Как это сделать:

# Используя метод downcase
my_string = "Hello World!"
puts my_string.downcase  # => "hello world!"
# Используя downcase! для преобразования на месте
my_string = "Hello World!"
my_string.downcase!
puts my_string           # => "hello world!"

Подробнее

Исторически конвертация регистра была важной частью языков программирования для обеспечения единообразия текста. Она поддерживает сравнения и поиски без учета регистра, поэтому имеет большое значение.

Методы downcase и downcase! в Ruby исходят из принципа языка предоставлять как недеструктивные, так и деструктивные методы для манипуляций со строками. Недеструктивный downcase возвращает новую строку, оставляя оригинал без изменений, в то время как деструктивный downcase! модифицирует оригинальную строку на месте, что может быть более эффективно с точки зрения использования памяти.

Существуют альтернативы для случаев, когда применяются правила, специфичные для локали. String#mb_chars в сочетании с ActiveSupport::Multibyte::Chars#downcase из библиотеки Rails ActiveSupport могут обрабатывать более сложные ситуации, такие как символы с акцентами или другие диакритические знаки:

require 'active_support/core_ext/string/multibyte'

my_string = "ÄÖÜ"
puts my_string.mb_chars.downcase  # => "äöü"

Что касается реализации, downcase и downcase! в Ruby внутренне используют маппинг Unicode для конвертации каждого символа строки в его эквивалент в нижнем регистре.

Смотрите также