Een string met hoofdletters maken

Lua:
Een string met hoofdletters maken

Hoe te:

Lua heeft geen ingebouwde hoofdletterfunctie, dus laten we er een maken:

function capitalize(str)
  return (str:gsub("(%l)(%w*)", function(first, rest) return first:upper()..rest end))
end

print(capitalize("hello world"))  -- Output: Hallo Wereld

Diepgaand

Hoofdletterfuncties zijn standaard in veel programmeertalen. In Lua maken we er een met string.gsub(), een krachtige functie voor patroonovereenkomst. Onze aangepaste capitalize functie gebruikt een patroon om kleine letters (%l) te vinden gevolgd door nul of meer woordkarakters (%w*), en vervangt deze door de hoofdletter en de rest van het woord.

-- Hier is nog een manier om alleen het eerste woord te kapitaliseren
function capitalizeFirst(str)
  if str == "" then return str end
  return str:sub(1, 1):upper()..str:sub(2)
end

Lua’s patroonvergelijkingsmogelijkheden zijn minder krachtig dan volledige reguliere expressies, maar zijn geschikt voor veel taken op het gebied van tekenreeksmanipulatie. Let op dat onze capitalize functie geen woorden zal kapitaliseren die volgen op bepaalde leestekens, dus het is niet waterdicht. Voor robuustere oplossingen kunt u extra patroonvergelijkingen of externe bibliotheken overwegen.

Historisch gezien is de behoefte aan hoofdletterfuncties ontstaan ​​uit het verlangen om tekstgegevens uniform te presenteren, vooral in gebruikersinterfaces. Er moet echter voorzichtig worden omgegaan met het begrijpen van de context: verschillende talen en culturen hebben hun eigen regels voor kapitalisatie, verder dan simpelweg de eerste letter van een zin of naam.

Zie Ook