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 для конвертации каждого символа строки в его эквивалент в нижнем регистре.
Смотрите также
- Документация Ruby для
downcase
иdowncase!
: Ruby Doc downcase, Ruby Doc downcase! - Для сложной конвертации регистра смотрите расширения ActiveSupport Core: ActiveSupport String