Swift:
Teilstrings extrahieren

So geht’s:

let vollerText = "Hallo, ich bin ein Swift-Programmierer!"
let bereich = vollerText.index(vollerText.startIndex, offsetBy: 7)..<vollerText.index(vollerText.endIndex, offsetBy: -23)
let teilString = vollerText[bereich] // "ich bin"

print(teilString) // Gibt "ich bin" aus

Beispiel zum Extrahieren eines Wortes an einer bestimmten Position:

let satz = "Ein Apfel täglich hält den Doktor fern."
if let wortBereich = satz.range(of: "Apfel") {
    let wort = satz[wortBereich]
    print(wort) // Gibt "Apfel" aus
}

Tiefere Einblicke

Vor Swift 4 wurden Teilstrings nicht als Substring gehandhabt, sondern direkt als String, was zu unnötigem Kopieren und Speichernutzung führte. Der Substring Typ in Swift bietet eine performante Möglichkeit, mit Teilstrings zu arbeiten, ohne sofort neue String-Instanzen zu erzeugen. Alternativ kann man auch mit Regular Expressions oder Funktionen wie components(separatedBy:) arbeiten.

Die Implementierung nutzt Copy-On-Write (CoW), was bedeutet, dass Speicher erst dann kopiert wird, wenn Änderungen vorgenommen werden müssen. Das ist effizient, da es vermeidet, dass große Datenmengen unnötigerweise kopiert werden, wenn man nur auf Teile des Originalstrings verweisen möchte.

Siehe auch