2010-03-11 32 views
14

¿Lua proporciona una función para hacer el primer carácter en una palabra mayúscula (como ucfirst en php) y si es así, cómo usarlo?Primer carácter mayúscula Lua

Quiero keywords[1] ser la primera letra mayúscula. He leído que string.upper lo hace, pero hace que toda la palabra en mayúscula.

Respuesta

27

Hay algunas recetas de cuerdas útiles here, incluida esta. Para cambiar el primer carácter de una cadena a mayúsculas, puede utilizar:

function firstToUpper(str) 
    return (str:gsub("^%l", string.upper)) 
end 
+0

Gracias! Funciona muy bien – Tomek

+0

@GrasDouble Por favor, no edite el código de otras personas a menos que sea solo un cambio de formato. Su edición (eliminar los paréntesis) cambia el comportamiento de la función y la hace incorrecta (hace que la función devuelva dos valores en lugar de uno). – interjay

+0

Lo siento, acabo de quedar atrapado por [este gotcha] (http://www.luafaq.org/gotchas.html#T8.1) (de hecho peligroso). El caso 'gsub' incluso está documentado, en particular, al final de la sección. –

7

Esto también funciona: s:sub(1,1):upper()..s:sub(2)

+0

La versión de Interjay no funcionó en LÖVE (love2d), esto por otro lado funciona muy bien. – modiX

Cuestiones relacionadas