Wie kann ich mit Swift das letzte Zeichen aus der String-Variablen entfernen? Kann es nicht in der Dokumentation finden.
Hier ist ein vollständiges Beispiel:
var expression = "45+22"
expression = expression.substringToIndex(countElements(expression) - 1)
Antworten:
Swift 4.0 (auch Swift 5.0)
Swift 3.0
Die APIs sind etwas schneller geworden , und infolgedessen hat sich die Foundation-Erweiterung etwas geändert:
Oder die In-Place-Version:
Danke Zmey, Rob Allen!
Schneller 2.0+ Weg
Es gibt einige Möglichkeiten, dies zu erreichen:
Über die Foundation-Erweiterung, obwohl sie nicht Teil der Swift-Bibliothek ist:
Unter Verwendung der
removeRange()
Methode (die Abspaltungen dername
):Verwenden der
dropLast()
Funktion:Alter String.Index (Xcode 6 Beta 4 +) Weg
Da
String
Typen in Swift eine hervorragende UTF-8-Unterstützung bieten sollen, können Sie mitInt
Typen nicht mehr auf Zeichenindizes / -bereiche / Teilzeichenfolgen zugreifen . Stattdessen verwenden SieString.Index
:Alternativ (für ein praktischeres, aber weniger lehrreiches Beispiel) können Sie Folgendes verwenden
endIndex
:Hinweis: Ich fand dies ein guter Ausgangspunkt für das Verständnis zu sein
String.Index
Alter (Pre-Beta 4) Weg
Sie können die
substringToIndex()
Funktion einfach verwenden und eine weniger als die Länge derString
:quelle
substringToIndex
substringToIndex
nicht so istsubstringFromIndex
. Sie fühlen sich nicht intelligent, wenn Sie das verwechseln, lassen Sie mich Ihnen sagen.substringToIndex
..count
string.characters.count
var truncated = name.substring(to: name.index(before: name.endIndex))
Die globale
dropLast()
Funktion arbeitet mit Sequenzen und daher mit Strings:quelle
characters
Eigenschaft einesexpression = expression.characters.dropLast()
expression = String(expression.characters.dropLast())
Sie das Ergebnis richtigSwift 4:
Gehen Sie in Swift 2 folgendermaßen vor:
Ich empfehle diesen Link, um Swift-Strings besser zu verstehen.
quelle
Swift 4/5
quelle
Dies ist ein String- Erweiterungsformular:
für Versionen von Swift vor 1.2:
Verwendung:
Referenz:
Siehe DOCS
quelle
Verwenden Sie die Funktion
removeAtIndex(i: String.Index) -> Character
:quelle
Der einfachste Weg, das letzte Zeichen der Zeichenfolge zu kürzen, ist:
quelle
Swift 4
oder
oder
quelle
quelle
quelle
Eine schnelle Kategorie, die mutiert:
Verwenden:
quelle
Kurze Antwort (gültig ab 16.04.2015):
removeAtIndex(myString.endIndex.predecessor())
Beispiel:
Meta:
Die Sprache setzt ihre rasante Entwicklung fort und macht die Halbwertszeit für viele ehemals gute SO-Antworten gefährlich kurz. Es ist immer am besten, die Sprache zu lernen und sich auf echte Dokumentation zu beziehen .
quelle
Mit der neuen Verwendung des Teilstringtyps:
Swift 4:
Kürzere Art:
quelle
Verwenden Sie die Funktion
advance(startIndex, endIndex)
:quelle
Ein anderer Weg Wenn Sie ein oder mehrere Zeichen am Ende entfernen möchten .
Wobei XX die Anzahl der Zeichen ist, die Sie entfernen möchten.
quelle
Swift 3 (laut Dokumentation ) 20. November 2016
quelle
Ich würde empfehlen, NSString für Zeichenfolgen zu verwenden, die Sie bearbeiten möchten. Wenn ich es mir als Entwickler vorstelle, bin ich nie auf ein Problem mit NSString gestoßen, das Swift String lösen würde ... Ich verstehe die Feinheiten. Aber ich habe noch keinen tatsächlichen Bedarf für sie.
oder
oder
Und dann steht Ihnen die ganze Welt der einfachen NSString-String-Operationen offen.
Als Antwort auf die Frage
quelle
Die
dropLast()
Funktion entfernt das letzte Element der Zeichenfolge.quelle
Swift 3 : Wenn Sie die nachfolgende Zeichenfolge entfernen möchten:
quelle
Swift 4.2
Ich lösche auch mein letztes Zeichen aus String (dh UILabel-Text ) in der IOS-App
quelle
quelle
Ergänzend zum obigen Code wollte ich den Anfang der Zeichenfolge entfernen und konnte nirgendwo eine Referenz finden. So habe ich es gemacht:
Dies schneidet 17 Zeichen vom Anfang der Zeichenfolge ab (die Gesamtlänge der Zeichenfolge beträgt 67, wir rücken vom Ende bis -50 vor und da haben Sie es.
quelle