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