Zählen und Indizes
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 1 von 56.
Du hast str.count in den Grundlagen verwendet, um die Anzahl der Zeichen zu erhalten. Weiterführend bedeutet dies zu verstehen, dass ein Swift-String eine Sequenz von Characters ist und kein flaches Array von Bytes.
let greeting = "Hello"
print(greeting.count) // 5
print(greeting.first!) // "H"
print(greeting.last!) // "o"
print(greeting.isEmpty) // falseSie können einen String nicht mit einer Ganzzahl indizieren. Um ein Zeichen an einer bestimmten Position abzurufen, fragen Sie den String nach einem index, der von seinem Anfang versetzt ist:
let i = greeting.index(greeting.startIndex, offsetBy: 1)
print(greeting[i]) // "e"Die Eigenschaften first, last und isEmpty sind die Werkzeuge für den Alltag. Greifen Sie nur dann auf Indizes zurück, wenn Sie wirklich eine bestimmte Position benötigen.
Aufgabe
AnfängerLies eine einzelne Eingabezeile ein. Gib drei Zeilen aus:
- Die Anzahl der Zeichen in der Eingabe
- Das erste und das letzte Zeichen, getrennt durch ein Leerzeichen, z. B.
H ofürHello true, wenn das erste und das letzte Zeichen der gleiche Buchstabe sind (Groß-/Kleinschreibung ignorieren), andernfallsfalse(z. B.Anna,RadaR)
Gehe davon aus, dass die Eingabe mindestens ein Zeichen enthält.
Für die Eingabe RadaR lautet die Ausgabe:
5
R R
trueSpickzettel
Ein Swift-String ist eine Sequenz von Characters. Wichtige Eigenschaften:
let s = "Hello"
s.count // 5
s.first! // "H"
s.last! // "o"
s.isEmpty // falseUm auf ein Zeichen an einer bestimmten Position zuzugreifen, verwenden Sie einen Index-Offset:
let i = s.index(s.startIndex, offsetBy: 1)
print(s[i]) // "e"Zeichenvergleich ohne Berücksichtigung der Groß-/Kleinschreibung:
s.first!.lowercased() == s.last!.lowercased()Probier es selbst
let line = readLine()!
// TODO: print count, first/last, and same-letter-ignoring-case check
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Kontrollfluss
1Strings im Detail
Zählen und IndizesGroß-/Kleinschreibung und TrimmenSuchen in StringsTeilen und ZusammenfügenTeilstrings ersetzenWiederholung – Benutzernamen-Check4Mengen
Mengen erstellenVereinigung und SchnittmengeDifferenz und symmetrische DifferenzTeilmenge und ObermengeRückblick – Tag-Filter7Projekt - Habit Tracker
ProjektübersichtAls erledigt markieren2Bereiche & Schrittweiten
Geschlossen vs. halboffenSchrittweiteRange-MethodenRanges in SwitchRückblick – Kalender-Grid5Funktionen höherer Ordnung Teil 1
MapFilterReduceVerkettung von map, filter, reduceRückblick – Wortstatistiken