Wie man einen String in Swift in ein Array aufteilt: Vollständige Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: Warum das Aufteilen von Strings eine Grundlage ist, die jeder Swift-Entwickler kennen muss

\n\n

Stellen Sie sich folgende Situation vor: Sie parsen eine CSV-Datei, verarbeiten Benutzereingaben aus einem Textfeld oder analysieren einen JSON-ähnlichen String. Was tun Sie? Richtig — Sie teilen den String in ein Array auf. Die Frage "Split a String into an array in Swift?" auf Stack Overflow hat über 20.000 Aufrufe und ist eine der beliebtesten unter angehenden iOS-Entwicklern. Warum? Weil man ohne diese Fähigkeit kein ernsthaftes Projekt in Swift schreiben kann.

\n\n

In diesem Artikel behandeln wir alle möglichen Methoden, um einen String in Swift in ein Array aufzuteilen: von der klassischen components(separatedBy:) bis zur modernen split(separator:) und cleveren Tricks mit regulären Ausdrücken. Sie erfahren, welche Methode Sie je nach Aufgabe wählen sollten, und erhalten fertige Codebeispiele, die Sie sofort in Ihr Xcode-Projekt einfügen können.

\n\n

1. Die klassische Methode: components(separatedBy:)

\n\n

Diese Methode stammt aus Objective-C und wird bis heute aktiv genutzt. Sie ist einfach, verständlich und funktioniert wie ein Schweizer Uhrwerk. components(separatedBy:) gibt ein Array von Strings [String] zurück, die durch das angegebene Trennzeichen getrennt sind.

\n\n
import Foundation\n\nlet text = "Apfel,Banane,Orange,Kiwi"\nlet fruits = text.components(separatedBy: ",")\nprint(fruits) // ["Apfel", "Banane", "Orange", "Kiwi"]
\n\n

Wichtige Nuancen der Methode components(separatedBy:):

\n
    \n
  • Trennzeichen ist ein String. Sie können jeden beliebigen String übergeben, auch mit mehreren Zeichen: "::", " - ".
  • \n
  • Leere Elemente bleiben erhalten. Wenn zwischen Trennzeichen nichts steht, erscheint im Array ein leerer String.
  • \n
  • Erfordert import Foundation. Ohne Import ist die Methode nicht verfügbar.
  • \n
\n\n
let data = "a,,b,c"\nlet parts = data.components(separatedBy: ",")\nprint(parts) // ["a", "", "b", "c"]
\n\n

Diese Methode ist ideal, wenn Sie einfach und schnell einen String in Swift in ein Array aufteilen möchten, ohne unnötige Komplikationen. Aber denken Sie daran: Sie entfernt leere Teilstrings nicht automatisch.

\n\n

2. Die moderne Methode: split(separator:maxSplits:omittingEmptySubsequences:)

\n\n

Seit Swift 2.0 haben wir die native Methode split(). Sie ist flexibler und "swiftiger". Im Gegensatz zu components gibt split ein Array von Substring zurück, nicht von String. Dies dient der Leistungsoptimierung — Teilstrings verweisen auf den Speicher des ursprünglichen Strings.

\n\n
let sentence = "Der schnelle braune Fuchs springt über den faulen Hund"\nlet words = sentence.split(separator: " ")\nprint(words) // ["Der", "schnelle", "braune", "Fuchs", "springt", "über", "den", "faulen", "Hund"]
\n\n

Parameter der split-Methode:

\n
    \n
  • separator — Trennzeichen (Character).
  • \n
  • maxSplits — maximale Anzahl von Teilungen (Standard: Int.max).
  • \n
  • omittingEmptySubsequences — ob leere Teilstrings entfernt werden sollen (Standard: true).
  • \n
\n\n
let csvLine = "1,2,,4,5"\nlet withEmpties = csvLine.split(separator: ",", omittingEmptySubsequences: false)\nprint(withEmpties) // ["1", "2", "", "4", "5"]\n\nlet withoutEmpties = csvLine.split(separator: ",", omittingEmptySubsequences: true)\nprint(withoutEmpties) // ["1", "2", "4", "5"]
\n\n

Wenn Sie einen String in Swift in ein Array von Substring aufteilen und die Kontrolle über leere Elemente haben möchten, wählen Sie split. Um [String] zu erhalten, fügen Sie einfach .map(String.init) hinzu.

\n\n
let result: [String] = "a,b,c".split(separator: ",").map(String.init)\nprint(result) // ["a", "b", "c"]
\n\n

Blogs

Buchempfehlungen