Lua:
Преобразование строки в верхний регистр
Как:
В Lua нет встроенной функции для преобразования строк в заглавные буквы, поэтому давайте создадим её:
function capitalize(str)
return (str:gsub("(%l)(%w*)", function(first, rest) return first:upper()..rest end))
end
print(capitalize("hello world")) -- Вывод: Hello World
Глубокое погружение
Функции преобразования в заглавные буквы стандартны во многих языках программирования. В Lua мы создаем такую с помощью string.gsub()
, мощной функции для сопоставления с образцом. Наша пользовательская функция capitalize
использует шаблон для поиска строчных букв (%l
), за которыми следует ноль или более символов слова (%w*
), и заменяет их на прописную букву и остаток слова.
-- Вот другой способ просто сделать заглавной первую букву слова
function capitalizeFirst(str)
if str == "" then return str end
return str:sub(1, 1):upper()..str:sub(2)
end
Возможности сопоставления с образцом в Lua менее мощные, чем полные регулярные выражения, но подходят для многих задач по манипуляции со строками. Обратите внимание, что наша функция capitalize
не будет преобразовывать в заглавные буквы слова после определённой пунктуации, так что она не является идеальным решением. Для более надёжных решений вы можете рассмотреть дополнительное сопоставление с образцом или внешние библиотеки.
Исторически потребность в функциях преобразования в заглавные буквы возникла из желания представить текстовые данные единообразно, особенно в пользовательских интерфейсах. Однако необходимо с особой осторожностью относиться к пониманию контекста: различные языки и культуры имеют свои собственные правила для использования заглавных букв, которые выходят за рамки простого написания с заглавной буквы первой буквы предложения или имени.
См. также
- Библиотека Lua
string
: https://www.lua.org/manual/5.4/manual.html#6.4 - Шаблоны Lua: https://www.lua.org/pil/20.2.html
- Обработка текста в Lua: https://www.lua.org/pil/20.html