Fonctions sur les chaînes de caractères.
Lua fournit tout une gamme de fonctions pour le traitement des strings dans sa bibliothèque standard.
Pour obtenir plus de précisions sur une des fonctions présentes ci-desous, cliquez sur celle de votre choix.
Retourne le code numérique d'un ou plusieurs caractères. ( code ASCII )
print(string.byte("ABCDE"))
Retourne la valeur ASCII du premier caractère: 65
print(string.byte("ABCDE", 2))
Retourne la valeur ASCII du second caractère: 66
print(string.byte("ABCDE", 1, 5))
Retourne la valeur ASCII de tous les caractères: 65 66 67 68 69
Retourne un caractère ou une chaîne à partir de son code ASCII.
print(string.char(65))
Retourne le caractère dont le code ASCII est 65: A
print(string.char(67, 108, 97, 117, 100, 101 ))
Retourne une string: Claude
Retourne une chaîne en une représentation binaire de la fonction donnée.
s = string.dump(f)
Convertit une fonction f en représentation binaire, qui peut être ensuite
traitée par loadString pour récupérer la fonction. La fonction doit être
une fonction Lua sans upvalue?
function f() print "hello, world" end
s = string.dump(f)
assert(loadstring(s)) () --> hello, world
Retourne l'emplacement du caractère ou de la sous-chaine recherché.
string.find(string, pattern, init, plain)
Recherche la première occurrence du pattern dans une chaîne de caractères
et retourne la position du début et de la fin du mot qu'elle a trouvé.
print(string.find("Bonjour tout le monde.", "our")) Résultat = 5 7
print(string.find("Bonjour tout le monde.", "pomme")) Résultat = nil
print(string.find("Bonjour tout le monde.", "our", 6)) Résultat = nil
Recherche "our" à partir du 6ème caractère
print(string.find("Bonjour tout le monde.", "%s")) Résultat = 8
Recherche l'emplacement du premier espace
Retourne une chaîne de caractères formatée. (voir tableau ci-dessous)
string.format(formatstring, e1, e2, ···)
Crée une chaîne de caractères formatée et composée des arguments
e1, e2 tout en respectant le format défini par formatstring.
print(string.format("Pour manier %s, vous devez être niveau %i", "l'épée", 10))
Pour manier l'épée, vous devez être niveau 10
Dans cet exemple %s a été remplacé par l'épée et %i par 10
print(string.format ("%q", 'un chat appelé "Pussy"'))
"un chat appelé \"Pussy"\"
%q - formate une chaîne de telle sorte Lua puisse la lire
%s - affiche une chaîne de caractères (ou quelque chose qui puisse
être convertie en une chaîne, comme un numéro).
%% - Un caractère de sortie simple%
Retourne une sous-chaîne de la chaîne principale.
for w in string.gmatch("Pierre marche dans la rue", "%a+") do
print(w)
end
Pierre
marche
dans
la
rue
Cette fonction renvoie un modèle trouvant un itérateur.
L'itération recherche dans la string, la sous chaîne passée à pattern.
Remplace les occurrences d'une sous-chaîne.
s, n = string.gsub(string, pattern, remplacement, n)
Retourne une copie de string dont les mots représentés par "pattern"
ont été remplacés par "remplacement", pour un maximum de n fois.
print(string.gsub("Pierre mange du poisson", "du poisson", "des chips"))
Pierre mange des chips 1
1 = le nombre de substitution
Retourne la longueur d'une chaîne de caractères.
s = "Retourne la longueur de la chaîne en octets, y compris les espaces."
n = string.len(string)
print(n) Résultat = 67
Vous pouvez également utiliser l'opérateur unitaire dièse(#)
print(#s) Résultat = 67
Convertit les CAPITALES en minuscules.
s = string.lower(string)
Convertit string en minuscules
print(string.lower("ABCdef")) Résultat = abcdef
Retourne une sous chaîne de caractères.
s = string.match(string, pattern, index)
Trouve la première occurence de pattern, commençant à la position "index".
C'est similaire à string.find, sauf que les indices de début et de fin
ne sont pas retournés.
print(string.match("Vous voyez des chiens et des chats", "v...."))
Résultat = voyez
Retourne une chaîne par concaténation multiple.
s = string.rep(string, n)
print(string.rep ("oui ", 4))
Résultat = oui oui oui oui
Inverse une chaîne de caractères.
s = string.reverse(string)
print(string.reverse("La cigale ayant chanté tout l'été"))
Résultat = été'l tuot étnahc tnaya elagic aL
Et bien sûr . . .
print(string.reverse("été'l tuot étnahc tnaya elagic aL"))
Résultat = La cigale ayant chanté tout l'été
Retourne une sous chaîne.
s = string.sub (string, start, end)
Retourne une sous-chaîne de la string, à partir de l'index "start" et
se terminant à l'index "end". Les deux peuvent être négatifs indiquant
ainsi un début à droite.
Le "end" est facultatif et est par défaut à -1.( indiquant le reste de
la chaîne)
print(string.sub ("ABCDEF", 2, 3)) Résultat = BC
print(string.sub ("ABCDEF", 3)) Résultat = CDEF
print(string.sub ("ABCDEF", -1)) Résultat = F
Convertit les minuscules en CAPITALES.
s = string.upper(string)
print(string.upper("ABCdef")) Résultat = ABCDEF
Tableau récapitulatif des PATTERNS utilisables avec string.format().
print(string.format("%c", 65)) Résultat = A
%c - convertit un nombre en caractère (comme string.char)
print(string.format("%i", 123.456)) Résultat = 123
%d et %i - convertit un nombre décimal en entier
print(string.format("%o", 16)) Résultat = 20
%o - convertit en octal
print(string.format("%u", 1234.566)) Résultat = 1234
print(string.format("%u", -1234)) Résultat = 429496606
%u - Convertit un nombre non signé en un entier
print(string.format("%x", 86543)) Résultat = 1520f
%x - hex (en minuscules)
print(string.format("%X", 86543)) Résultat = 1520F
%x - hex (en capitales)
print(string.format("%e", 15)) Résultat = 1.500000e+001
%e - notation scientifique, "e" en minuscule
print(string.format("%E", 15)) Résultat = 1.500000E+001
%E - notation scientifique, "E" en capitale
print(string.format("%g", 15.656)) Résultat = 15.656
print(string.format("%g", 1)) Résultat = 1
print(string.format "%g", 1.2)) Résultat = 1.2
g% - valeur signée imprimée au format %f ou %e, selon le plus compacte
pour une valeur donnée.