Ich habe den folgenden einfachen Code in Swift 3 geschrieben:
let str = "Hello, playground"
let index = str.index(of: ",")!
let newStr = str.substring(to: index)
Von Xcode 9 Beta 5 erhalte ich die folgende Warnung:
'
substring(to:)
' ist veraltet: Bitte verwenden Sie einenString
Slicing-Index mit einem Operator 'Teilbereich von'.
Wie kann dieser Slicing-Index mit Teilbereich von in Swift 4 verwendet werden?
Antworten:
Sie sollten eine Seite leer lassen , daher der Name "Teilbereich".
Das gleiche gilt für Teilreichweite von Bedienern, lassen Sie einfach die andere Seite leer:
Beachten Sie, dass diese Bereichsoperatoren a zurückgeben
Substring
. Wenn Sie es in einen String konvertieren möchten, verwenden SieString
die Initialisierungsfunktion:Weitere Informationen zu den neuen Teilzeichenfolgen finden Sie hier .
quelle
str[..<index]
gibt a zurückSubstring
. Wenn du ein sein willstnewStr
,String
musst du schreiben:let newStr = "\(str[..<index])"
Substring
ist wahrscheinlich etwas verwirrend, da Sie wirklich versuchen, dieString
Initialisierung zu erreichen :let newStr = String(str[..<index])
.Cannot subscript a value of type 'String' with an index of type 'PartialRangeUpTo<Int>'
. Welche Arten von Werten müssen dort verwendet werden?str[..<str.index(str.startIndex, offsetBy: 8)]
etwas Ähnliches benötigen . Denken Sie daran, dass diesstr.index
eine zeitlich lineare Operation in Funktion von istoffsetBy
.str.prefix(8)
Konvertieren Sie die Teilzeichenfolge (Swift 3) in String Slicing (Swift 4).
Beispiele in Swift 3, 4:
quelle
Swift 5, 4
Verwendung
Code
quelle
Kürzere in Swift 4/5:
quelle
Die Konvertierung Ihres Codes in Swift 4 kann auch folgendermaßen erfolgen:
Sie können den folgenden Code verwenden, um eine neue Zeichenfolge zu erhalten:
quelle
Teilzeichenfolge (von: Index) Konvertiert in [Index ...]
Überprüfen Sie die Probe
quelle
Swift5
(Javas Teilstring-Methode):
Verwendungszweck:
quelle
from
toto-1
, z. B."Hello".substring(1,4)
"ell"). Mit einer kleinen Modifikation (startIndex..<endIndex
) ist dies die beste Lösung, die ich bisher gefunden habe und die genau das mit nur wenigen Codezeilen macht.Einige nützliche Erweiterungen:
quelle
Beispiel für eine
uppercasedFirstCharacter
Convenience-Eigenschaft in Swift3 und Swift4.Die Eigenschaft
uppercasedFirstCharacterNew
zeigt, wie der Index zum Schneiden von Zeichenfolgen in Swift4 verwendet wird.quelle
Sie können Ihre benutzerdefinierte SubString-Methode mithilfe der Erweiterung der Klasse String wie folgt erstellen:
quelle
Erstellen von SubString (Präfix und Suffix) aus String mit Swift 4:
Ausgabe
Wenn Sie einen Teilstring zwischen zwei Indizes generieren möchten, verwenden Sie:
quelle
Ich habe eine String-Erweiterung zum Ersetzen von 'String: subString:' geschrieben.
PS: Optionale Optionen müssen ausgepackt werden. Bitte fügen Sie bei Bedarf eine Sicherheitsüberprüfung hinzu.
quelle
Beim Programmieren habe ich oft Strings mit einfachem A-Za-z und 0-9. Keine Notwendigkeit für schwierige Indexaktionen. Diese Erweiterung basiert auf den einfachen alten Funktionen für links / mittel / rechts.
quelle
Mit dieser Methode können Sie einen bestimmten Bereich von Zeichenfolgen abrufen. Sie müssen den Startindex und danach die Gesamtzahl der gewünschten Zeichen übergeben.
quelle
Dies ist meine Lösung, keine Warnung, keine Fehler, aber perfekt
quelle
encodedOffset
wird als schädlich angesehen und veraltet sein .Hoffe das hilft wenig mehr: -
Wenn Sie einen Teilstring nach einem bestimmten Index wünschen.
Wenn Sie einen Teilstring möchten, nachdem Sie am Ende einen String entfernt haben.
Sie können auch Indizes mit dem folgenden Code erstellen: -
quelle
Hoffe es wäre hilfreich.
quelle
Sie können es auf diese Weise versuchen und erhalten die richtigen Ergebnisse.
quelle