Elixir:
Преобразование строки в нижний регистр
Как это сделать:
В Elixir это делается легко. Используйте функцию String.downcase/1
:
original = "LoReM IPSUM"
lowercased = String.downcase(original)
IO.puts original
IO.puts lowercased
Вывод:
LoReM IPSUM
lorem ipsum
Подробнее
Обработка строк в Elixir учитывает Unicode, что очень важно для правильного преобразования в нижний регистр в разных алфавитах и письменностях. Исторически обработка строк в языках программирования не всегда учитывала эту сложность.
До современного подхода Elixir некоторые старые языки предлагали упрощенные методы, которые могли работать нормально для английского, но сталкивались с проблемами с такими языками, как турецкий, где, например, прописная ‘i’ не становится ‘I’, а становится ‘İ’.
Внутренне Elixir использует маппинг регистров Unicode, чтобы справиться с этим правильно. И есть альтернативы; например, String.downcase/2
позволяет вам указать локаль, что пригодится для учета специфики языка.
turkish = "GÖLCÜK"
String.downcase(turkish, :tr)
Вывод:
gölcük
В приведённом выше примере обратите внимание на то, как символ ‘I’ сохраняется соответственно правилам регистра турецкого языка.
Смотрите также
- Официальная документация модуля
String
Elixir: https://hexdocs.pm/elixir/String.html - Маппинг регистров Unicode: https://www.unicode.org/reports/tr21/tr21-5.html
- Краткое руководство по Unicode в Elixir: https://elixir-lang.org/blog/2017/01/05/elixir-and-unicode-part-1/