2010-03-11 7 views
14

Est-ce que Lua fournit une fonction permettant de mettre le premier caractère en majuscule (comme ucfirst en php) et si oui, comment l'utiliser? Je veux que keywords[1] soit la première lettre majuscule. J'ai lu que string.upper le fait mais il a fait le mot entier en majuscule.Premier caractère majuscule Lua

Répondre

27

Il existe quelques recettes de chaînes utiles here, y compris celle-ci. Pour modifier le premier caractère d'une chaîne en majuscules, vous pouvez utiliser:

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

Merci! Fonctionne bien – Tomek

+0

@GrasDouble S'il vous plaît ne pas éditer le code d'autres personnes, sauf s'il s'agit juste d'un changement de formatage. Votre modification (suppression des parenthèses) modifie le comportement de la fonction et la rend incorrecte (elle renvoie deux valeurs au lieu d'une). – interjay

+0

Désolé, je viens d'être attrapé par [ce gotcha] (http://www.luafaq.org/gotchas.html#T8.1) (en effet dangereux). Le cas 'gsub' est même documenté en particulier à la fin de la section. –

7

Cela fonctionne aussi: s:sub(1,1):upper()..s:sub(2)

+0

La version d'interjay ne fonctionnait pas dans LÖVE (love2d), cela marche d'ailleurs très bien. – modiX

Questions connexes