2.12 Textsträngar
Vi har tidigare varit inne på textsträngar, då vi gick igenom datatyper, men nu ska vi se lite mer på vad man kan göra med strängar. En sträng (eller string på engelska) är en sekvens av tecken, dvs en lista av tecken. Därmed finns det många likheter med arrayer, men samtidigt en del skillnader. Vi kan komma åt de enskilda tecknen genom indexering, vi får fram antal tecken genom egenskapen length
och det finns metoder för att söka efter tecken, ta ut delsträngar, etc. I detta exempel introduceras några vanliga metoder. Exemplet är uppdelat i två delar:
- De olika egenskaperna och metoderna illustreras med små exempel.
- Några loopar, som går igenom en textsträng tecken för tecken.
19 min.
Sammanfattning
- Tecknen i en sträng indexeras, där index för första tecknet är 0.
- Man kan avläsa ett tecken, genom att indexera strängvariabeln i ett uttryck eller till höger om ett likhetstecken, t.ex.
c = b[4]
. Det går dock inte ha indexeringen till vänster om likhetstecknet, för att lägga in ett nytt tecken i positionen (b[4] = c
är alltså ej tillåtet). -
Om vi tänker oss att
s = "https://abc.se/img/apple.png"
i varje rad nedan, får vi följande:Egenskap / metod Returnerat resultat s[9]
ellers.charAt(9)
"b" s.length
28
s.substring(5,10)
"bc.se"
s.substring(5)
"bc.se/img/apple.png"
s.includes("/img/")
true
s.includes("jpg")
false
s.indexOf("/img/")
14
s.indexOf("exempel")
-1
s.lastIndexOf("/")
18
s.split("/")
["https:","","abc.se","img","apple.png"]
Innehållet i s är hela tiden oförändrat.
Några vanliga egenskaper och metoder introducerades i detta exempel och en del andra återkommer vi till i senare exempel. Se även referenslistan för fler exempel och beskrivning.
Egna övningar
Här följer ett förslag på några egna övningar. Öppna filen test.html och test.js och utför följande:
- Inför en variabel kallad
counter
och sätt den till 0. Den ska sedan användas i loopen lite längre ner. - Inför en variabel kallad
town
, med ett namn på en stad. Skriv namnet med endast versaler. - I textfältet ska man skriva en bokstav. Avläs textfältet och spara innehållet i en variabel kallad
letter
. Konvertera den till en versal medtoUpperCase()
. - Skriv en
for
-loop som går igenom alla tecken i variabelntown
. I loopen ska du ha enif
-sats, där du jämförletter
med den bokstav itown
som indexeras av loopvariabeln. Om de är lika räknar du uppcounter
med 1. Efter loopen skriver du utcounter
i elementet för resultat.