Lua:
Преобразование строки в нижний регистр
Как сделать:
В Lua вы облегчаете себе задачу с помощью string.lower()
. Подайте на вход строку, снизу выскакивает версия в нижнем регистре. Наблюдайте:
local originalString = "Hello, World!"
local lowerCaseString = string.lower(originalString)
print(lowerCaseString) -- Вывод: hello, world!
Запустите этот фрагмент. Громкие заглавные буквы теперь тихие строчные.
Подробнее
С рассвета вычислительной техники людям требовалось приводить текст к единому регистру по всевозможным причинам, например, для сортировки или регистрации без учета регистра. В Lua string.lower()
является предпочтительным решением с самого начала. Это аккуратно, это встроенный инструмент, и он делает свою работу без лишних хлопот.
Но что скрывается под капотом? string.lower()
проходит через каждый символ, и если он в верхнем регистре (от A до Z), он преобразует его. Lua опирается на значения ASCII: от ‘A’ (65) до ‘Z’ (90) переходят к ‘a’ (97) до ‘z’ (122). Разница? 32. Так что, lowercase = uppercase + 32
.
Что делать, если string.lower()
кажется слишком простым? Вы можете вручную перебирать символы с помощью цикла, используя значения ASCII или сопоставление с образцом с помощью string.gsub()
:
local s = "Make Me Lowercase, Please"
s = s:gsub("%u", function (upper) return string.char(upper:byte() + 32) end)
print(s) -- Вывод: make me lowercase, please
Но на самом деле, зачем грести лодку, если у вас есть мотор (читай: string.lower()
)?
Смотрите также
Углубитесь в манипуляции со строками в Lua с помощью этих материалов:
- Программирование на Lua (4-е издание) для понимания всех тонкостей работы со строками.
- Справочник Lua 5.4 для всех функций работы со строками, когда вы будете готовы идти дальше нижнего регистра.