Extrahera delsträngar

Elixir:
Extrahera delsträngar

Hur man gör:

# Starta med en grundsträng
original = "Hej världen! Hur mår du idag?"

# Extrahera en delsträng med String.slice/3
delsträng = String.slice(original, 4, 7)
IO.puts(delsträng) # => "världen"

# Använda negativa index för att börja från slutet
delsträng_bak = String.slice(original, -9, 7)
IO.puts(delsträng_bak) # => "Hur mår"

# Få delsträng med en startindex och längd
delsträng_start = String.slice(original, 10..15)
IO.puts(delsträng_start) # => "Hur mår"

Fördjupning

Delsträngsextraktion är grundläggande i de flesta programmeringsspråk, inklusive Elixir. Historiskt sett härstammar det från behovet av textbehandling. Alternativ till String.slice i Elixir kan vara användning av regex med Regex.run/2 eller att iterera över strängen med String.next_codepoint/1.

Exempel på alternativ:

# Använda Regex för att hitta matchande text
match = Regex.run(~r/Hur mår/, original)
IO.inspect(match) # => ["Hur mår"]

# Iterera över sträng och välja ut delar
{delsträng_iter, _} = original |> String.next_codepoint()
IO.puts(delsträng_iter) # => "H"

Elixir använder UTF-8 teckenkodning vilket innebär att String.slice/3 hanterar Unicode-strängar korrekt, till skillnad från äldre språk där substrings kan bryta tecken.

Se även