Angenommen, ich habe eine Zeichenfolge, und ich möchte das erste "a" in dieser Zeichenfolge in ein "e" ändern, um die richtige Schreibweise zu erhalten.swift - replaceRange() verwenden, um bestimmte Vorkommnisse in einer Zeichenfolge zu ändern
let animal = "elaphant"
stringByReplacingOccurrencesOfString()
Verwendung wird jedes „a“ ändern in dieser Zeichenfolge zu einem „e“, welcher:
elephent
Ich versuche, den Index des ersten „a“ zu bekommen und dann ersatzlos mit replaceRange()
, etwa so:
let index = animal.characters.indexOf("a")
let nextIndex = animal.startIndex.distanceTo(index!)
animal = animal.replaceRange(animal.startIndex.advancedBy(nextIndex)..<animal.startIndex.advancedBy(1), with: "e")
jedoch dieser Code mir folgende Fehler gibt:
Cannot assign value of type '()' to type 'String'
Ich habe versucht, einen Weg zu finden, nextIndex in Int
umzuwandeln, aber ich habe das Gefühl, dass ich diese ganze Methode falsch verstanden habe. Hilfe?
Wow, ich denke, es war Grübeln. Was wäre, wenn ich das zweite "a" anstelle des ersten "e" in ein "e" ändern möchte? – wasimsandhu
@wasimsandhu Die 'rangeOfString'-Funktion hat einen Standardparameter namens options, Sie können' animal.rangeOfString ("a", Optionen: .BackwardsSearch) 'verwenden, um die erste Übereinstimmung am Ende der Zeichenfolge zu finden. –
@LeoDabus hat eine viel flexiblere Antwort auf diese Frage zur Verfügung gestellt, ich würde empfehlen, einen Blick darauf zu werfen. Da hilft diese Antwort wirklich beim ersten und letzten Vorkommen des Buchstabens "a". –