Capitalizando una cadena de texto

Lua:
Capitalizando una cadena de texto

Cómo hacerlo:

Lua no tiene una función integrada para capitalizar cadenas, pero puedes lograr fácilmente esta tarea utilizando funciones básicas de manipulación de cadenas. Aquí hay una función simple para capitalizar la primera letra de una sola palabra:

function capitalize(word)
    return word:sub(1,1):upper() .. word:sub(2):lower()
end

print(capitalize("hello"))  -- Salida: Hello

Para capitalizar cada palabra en una oración, puedes dividir la oración en palabras, capitalizar cada una y luego volver a unirlas:

function capitalizeSentence(sentence)
    local words = {}
    for word in sentence:gmatch("%S+") do
        table.insert(words, capitalize(word))
    end
    return table.concat(words, " ")
end

print(capitalizeSentence("hello world from lua"))  -- Salida: Hello World From Lua

Si estás trabajando en un proyecto donde el rendimiento es clave y te encuentras necesitando capacidades de manipulación de cadenas más avanzadas, considera usar una biblioteca de terceros como Penlight. Penlight mejora Lua con funciones de manejo de cadenas más versátiles, entre otras utilidades:

-- Asumiendo que Penlight está instalado:
local pl = require("pl.stringx")
local text = "hello lua users"
text = pl.capitalized(text)
print(text)  -- Salida: Hello lua users

-- Nota: La función capitalized de Penlight solo capitaliza la primera palabra.
-- Para capitalizar cada palabra, todavía deberías implementar una solución personalizada o explorar otras bibliotecas.