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

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 не будет преобразовывать в заглавные буквы слова после определённой пунктуации, так что она не является идеальным решением. Для более надёжных решений вы можете рассмотреть дополнительное сопоставление с образцом или внешние библиотеки.

Исторически потребность в функциях преобразования в заглавные буквы возникла из желания представить текстовые данные единообразно, особенно в пользовательских интерфейсах. Однако необходимо с особой осторожностью относиться к пониманию контекста: различные языки и культуры имеют свои собственные правила для использования заглавных букв, которые выходят за рамки простого написания с заглавной буквы первой буквы предложения или имени.

См. также