Hopp til innhold
NorscodeNorscode

std.tekst

ReferanseAv Norscode-prosjektet

std.tekst er verktøykassen for tekst: søke og sjekke, dele og sette sammen, trimme blanktegn, endre mellom store og små bokstaver, og konvertere til og fra tall.

std.tekst er verktøykassen for alt som har med tekst å gjøre. Her finner du funksjonene du bruker oftest når du behandler det brukeren skriver, bygger tekst for visning, eller tolker data som kommer som tekst: søke og sjekke, dele og sette sammen, trimme bort blanktegn, endre mellom store og små bokstaver, og konvertere til og fra tall.

Funksjonene er små og forutsigbare — hver av dem gjør én tydelig ting og gir et nytt resultat i stedet for å endre teksten du sendte inn. Det gjør dem trygge å sette sammen: du kan trimme, dele og konvertere i en kjede uten bivirkninger. Importer modulen med bruk std.tekst som t og kall funksjonene med t.-prefiks.

Når bruker du den

Bruk std.tekst nesten hver gang du behandler brukerinput eller bygger tekst for visning: sjekke om noe starter eller slutter på et mønster, dele opp en linje, sette sammen deler, eller rydde vekk blanktegn. Fordi hver funksjon gir et nytt resultat i stedet for å endre originalen, kan du trygt kjede dem sammen.

Slik kommer du i gang

bruk std.tekst som t

funksjon start() -> heiltall {
    la rå = "  Ada Lovelace  "
    la navn = t.trim(rå)                 // "Ada Lovelace"
    hvis t.starter_med(navn, "Ada") {
        skriv(t.til_store_bokstavar(navn)) // "ADA LOVELACE"
    }
    la deler = t.splitt(navn, " ")        // ["Ada", "Lovelace"]
    skriv(deler[0])                        // "Ada"
    returner 0
}

Legg merke til at hver funksjon gir et nytt resultat: trim endrer ikke rå, men gir en ny tekst. Slik kan du bygge en kjede av små, forutsigbare steg.

Funksjonene

Funksjonene faller i noen naturlige familier. Noen sjekker noe om teksten og gir sann/usann (starter_med, slutter_med, inneholder, er_tom, er_heltall). Andre deler og setter sammen (splitt, teikn, sett_saman, del_av). En tredje gruppe endrer teksten og gir en ny (trim, erstatt, til_store_bokstavar, snu, gjenta). Så finnes det justering for pen utskrift (fyll_venstre, fyll_høgre, senter, nullfyll) og konvertering til og fra tall (tall_til_tekst, til_heltall, tegn_kode).

  • hilsen(navn: tekst) -> tekst — Lager en enkel hilsen basert på navnet.
  • rop(melding: tekst) -> tekst — Gjør meldingen om til en «ropt» variant.
  • omgitt_av_klammer(tekstverdi: tekst) -> tekst — Omgir teksten med klammeparenteser.
  • ja_nei(verdi: bool) -> tekst — Gir «ja» eller «nei» ut fra en boolsk verdi.
  • tall_til_tekst(x: heltall) -> tekst — Gjør et heltall om til tekst.
  • bool_til_tekst(x: bool) -> tekst — Gjør en boolsk verdi om til tekst.
  • starter_med(tekstverdi: tekst, prefiks: tekst) -> bool — Sann hvis teksten begynner med prefikset.
  • slutter_med(tekstverdi: tekst, suffiks: tekst) -> bool — Sann hvis teksten slutter med suffikset.
  • inneholder(tekstverdi, deltekst: tekst) -> bool — Sann hvis deltekstet finnes et sted i teksten.
  • trim(tekstverdi: tekst) -> tekst — Fjerner blanktegn i starten og slutten, og gir en ny tekst.
  • splitt(tekstverdi: tekst, skilletegn: tekst) -> liste_tekst — Deler teksten på hvert skilletegn og gir en liste med delene.
  • teikn(tekstverdi: tekst) -> liste_tekst — Gir en liste med hvert enkelt tegn i teksten.
  • sett_saman(deler: liste_tekst, lim: tekst) -> tekst — Setter sammen en liste av tekster til én, med lim mellom hver del.
  • del_av(tekstverdi: tekst, start: heltall, slutt: heltall) -> tekst — Henter tekstbiten fra og med start til (men ikke med) slutt. Indekser starter på 0.
  • finn(tekstverdi: tekst, deltekst: tekst) -> heltall — Gir indeksen der deltekstet først står, eller -1 hvis det ikke finnes.
  • erstatt(tekstverdi: tekst, gammel: tekst, ny: tekst) -> tekst — Bytter alle forekomster av gammel med ny.
  • til_store_bokstavar(tekstverdi: tekst) -> tekst — Gir teksten med alle bokstaver som STORE.
  • til_små_bokstavar(tekstverdi: tekst) -> tekst — Gir teksten med alle bokstaver som små.
  • tegn_kode(tegn: tekst) -> heltall — Gir tegnkoden (Unicode-kodepunktet) for et enkelt tegn.
  • lengde(tekstverdi: tekst) -> heltall — Antall tegn i teksten.
  • gjenta(tekstverdi: tekst, n: heltall) -> tekst — Gjentar teksten n ganger etter hverandre.
  • tell_forekomster(tekstverdi: tekst, deltekst: tekst) -> heltall — Teller hvor mange ganger deltekstet forekommer.
  • substring(tekstverdi: tekst, start: heltall, slutt: heltall) -> tekst — Henter tekstbiten mellom start og slutt (samme som del_av).
  • er_tom(tekstverdi: tekst) -> bool — Sann hvis teksten er tom.
  • til_heltall(tekstverdi: tekst) -> heltall — Tolker teksten som et heltall.
  • fyll_høgre(tekstverdi: tekst, breidd: heltall, fylltegn: tekst) -> tekst — Fyller teksten på høyre side med fylltegn opp til breidd.
  • fyll_venstre(tekstverdi: tekst, breidd: heltall, fylltegn: tekst) -> tekst — Fyller teksten på venstre side opp til breidd.
  • senter(tekstverdi: tekst, breidd: heltall, fylltegn: tekst) -> tekst — Sentrerer teksten innenfor breidd ved å fylle på begge sider.
  • nullfyll(verdi: heltall, breidd: heltall) -> tekst — Formaterer et tall med ledende nuller opp til breidd.
  • fjern_prefiks(tekstverdi: tekst, prefiks: tekst) -> tekst — Fjerner prefikset hvis teksten begynner med det, ellers uendret.
  • fjern_suffiks(tekstverdi: tekst, suffiks: tekst) -> tekst — Fjerner suffikset hvis teksten slutter med det, ellers uendret.
  • snu(tekstverdi: tekst) -> tekst — Gir teksten baklengs.
  • er_heltall(tekstverdi: tekst) -> bool — Sann hvis hele teksten er et gyldig heltall.

Godt å vite

  • Indekser starter på 0, og del_av/substring tar med tegnet på startindeksen, men ikke på sluttindeksen.
  • finn gir -1 når deltekstet ikke finnes — sjekk på det før du bruker resultatet som en indeks.
  • Skal du bygge en lang tekst i en løkke, samle delene i en liste og bruk sett_saman til slutt; det er ryddigere enn å legge til bit for bit.

std.tekst er én av modulene i standardbiblioteket. Alt følger med kjøretiden — ingen installasjon, ingen eksterne avhengigheter. Se også Dokumentasjon for språket og kjøretiden.

Les også

Tilbake til oversikten