De lengte van een string vinden

Lua:
De lengte van een string vinden

Hoe:

In Lua pak je de lengte van een string met de # operator. Eenvoudig en snel.

local mijnString = "Hallo, Lua!"
print(#mijnString)  -- Output: 11

Wat als je string nieuwe lijntekens bevat of leeg is?

local stringWithNewline = "Hallo\nLua!"
local emptyString = ""
print(#stringWithNewline)  -- Output: 10
print(#emptyString)         -- Output: 0

Zelfs met nieuwe lijntekens telt Lua elk teken. En ja, een lege string is 0 lang.

Diepgaand

Vroeger waren strings in sommige talen lastiger. Je had misschien functies of methoden nodig om de lengte van een string te krijgen. Vandaag, in Lua, is het zo direct als het gebruiken van de # operator.

Alternatieven? Als je te maken hebt met Unicode-tekens, kan de # operator problemen veroorzaken met multibyte-tekens. In dat geval zou je bibliotheken zoals utf8 verkennen. Lua 5.3 introduceerde deze ingebouwde bibliotheek.

local unicodeString = "こんにちは" -- Dat is "Hallo" in het Japans
print(#unicodeString)  -- Output kan verrassend zijn als je niet klaar bent voor multibyte-tekens!
print(utf8.len(unicodeString))  -- Output: 5 tekens zoals verwacht

Een detail dat de moeite waard is om op te merken: Lua houdt strings onveranderlijk en intern hergebruikt via een mechanisme genaamd string interning. Dit is netjes omdat het geheugen bespaart en stringlengte-operaties snel maakt.

Zie Ook