Een string omzetten naar kleine letters

Lua:
Een string omzetten naar kleine letters

Hoe te:

In Lua verlicht je je last met string.lower(). Voer het een string in, en er komt een kleine letter versie uit. Kijk maar:

local originalString = "Hello, World!"
local lowerCaseString = string.lower(originalString)
print(lowerCaseString)  -- Uitvoer: hello, world!

Voer dit fragment uit. De schreeuwende hoofdletters zijn nu fluister-niveau kleine letters.

Diepgaand

Sinds de dageraad van de informatica, hebben mensen om allerlei redenen tekst in een uniforme vorm moeten drukken, zoals sorteren of hoofdletterongevoelige logins. In Lua is string.lower() sinds het begin de go-to geweest. Het is netjes, het is ingebouwd, en het doet zijn werk zonder gedoe.

Maar wat zit er onder de motorkap? string.lower() gaat door elk karakter heen, en als het een hoofdletter is (A t/m Z), dan converteert het die. Lua vertrouwt op de ASCII-waarden: ‘A’ (65) tot ‘Z’ (90) worden verhoogd naar ‘a’ (97) tot ‘z’ (122). Het verschil? 32. Dus, kleineLetter = hoofdLetter + 32.

Wat als string.lower() te mainstream aanvoelt? Je zou handmatig door karakters kunnen ploegen met een lus, gebruikmakend van ASCII-waarden, of patroonmatching met string.gsub():

local s = "Make Me Lowercase, Please"
s = s:gsub("%u", function (upper) return string.char(upper:byte() + 32) end)
print(s)  -- Uitvoer: make me lowercase, please

Maar echt, waarom zou je roeien als je een buitenboordmotor hebt (lees: string.lower())?

Zie Ook

Verdiep je verder in de stringmanipulatie van Lua met deze lekkernijen: