Les langages / Lua / Chaines de caracteres
Manipulation de chaînes
Lua offre une bibliothèque puissante pour manipuler les chaînes de caractères. Les fonctions string permettent de rechercher, remplacer, découper et formater du texte.
Fonctions de base
local texte = "Apprendre le Lua"
-- Longueur
print(#texte) -- 16
print(string.len(texte)) -- 16
-- Majuscules/minuscules
print(string.upper(texte)) -- APPRENDRE LE LUA
print(string.lower(texte)) -- apprendre le lua
-- Répéter
print(string.rep("Lua ", 3)) -- Lua Lua Lua
-- Inverser
print(string.reverse("Lua")) -- auL
Recherche et extraction
local phrase = "Bonjour le monde Lua"
-- Trouver une sous-chaîne
local debut, fin = string.find(phrase, "monde")
print(debut, fin) -- 12 16
-- Extraire une sous-chaîne
print(string.sub(phrase, 1, 7)) -- Bonjour
print(string.sub(phrase, 12, 16)) -- monde
print(string.sub(phrase, -3)) -- Lua
-- Vérifier le début/fin
if string.find(phrase, "^Bonjour") then
print("Commence par Bonjour")
end
Remplacement et patterns
local texte = "J'aime le JavaScript et le Java"
-- Remplacer (première occurrence)
local nouveau = string.gsub(texte, "Java", "Lua", 1)
print(nouveau) -- J'aime le Luaript et le Java
-- Remplacer toutes les occurrences
local tout = string.gsub(texte, "Java", "Lua")
print(tout) -- J'aime le Luaript et le Lua
-- Compter les remplacements
local resultat, count = string.gsub(texte, "Java", "Lua")
print("Remplacements:", count)
Formatage et découpage
-- Formatage de chaînes
local nom = "Shadow"
local age = 25
local message = string.format("%s a %d ans", nom, age)
print(message)
local pi = 3.14159
print(string.format("Pi = %.2f", pi)) -- Pi = 3.14
-- Découper une chaîne (split)
function split(str, sep)
local parts = {}
for part in string.gmatch(str, "([^"..sep.."]+)") do
table.insert(parts, part)
end
return parts
end
local mots = split("Lua,Python,Java", ",")
for i, mot in ipairs(mots) do
print(i, mot)
end
3 exercices pour cette lecon
Les exercices demandent un compte : il faut bien enregistrer votre progression quelque part. La lecture, elle, reste libre. Creer un compte
- Fonction string.upper moyen 20 XP
- Fonction string.sub moyen 20 XP
- Fonction string.len moyen 20 XP