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

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 с помощью этих материалов: