Ich habe viele Methoden zum Entfernen des letzten Zeichens aus einer Zeichenfolge gesehen. Gibt es jedoch eine Möglichkeit, irgendwelche alten Zeichen basierend auf ihrem Index zu entfernen?Entfernen Sie nth Zeichen aus Zeichenfolge
Antwort
Während String-Indizes sind nicht random-access und sind nicht Zahlen, können Sie sie durch eine Reihe, um voran die n-te Zeichen zuzugreifen:
var s = "Hello, I must be going"
s.removeAtIndex(advance(s.startIndex, 5))
println(s) // prints "Hello I must be going"
Natürlich sollten Sie immer die Zeichenfolge überprüfen ist mindestens 5 in der Länge, bevor Sie dies tun!
edit: wie @MartinR darauf hinweist, können Sie die mit-End-Index-Version voraus verwenden, um die Gefahr zu laufen, vorbei am Ende zu vermeiden:
let index = advance(s.startIndex, 5, s.endIndex)
if index != s.endIndex { s.removeAtIndex(index) }
Wie immer sind optionals Freund:
// find returns index of first match,
// as an optional with nil for no match
if let idx = s.characters.index(of:",") {
// this will only be executed if non-nil,
// idx will be the unwrapped result of find
s.removeAtIndex(idx)
}
var hello = "hello world!"
Lassen Sie uns sagen, dass wir das "w" entfernen möchten. (Es befindet sich an der 6. Indexposition.)
Zuerst: Erstellen Sie einen Index für diese Position. (Ich mache den Rückgabetyp Index explizit; es ist nicht erforderlich).
let index:Index = hello.startIndex.advancedBy(6)
Zweitens: Rufen Sie removeAtIndex() und es unsere Just-gemacht-Index übergeben. (Beachten Sie den Charakter in Frage zurück)
let choppedChar:Character = hello.removeAtIndex(index)
print(hello)
// druckt hallo elt!
print(choppedChar)
// druckt w
- 1. nth Zeichen der Zeichenfolge zu int
- 2. Verborgenes Zeichen aus der Zeichenfolge entfernen
- 3. Entfernen aller Zeichen aus einer gegebenen Zeichenfolge
- 4. Javascript: Fügen Sie ein Zeichen in eine Zeichenfolge alle nth
- 5. Fortran: Zeichen aus einer Zeichenfolge entfernen
- 6. jQuery Entfernen von '-' Zeichen aus Zeichenfolge
- 7. PHP - Entfernen Sie alle nicht-numerischen Zeichen aus einer Zeichenfolge
- 8. Entfernen Sie das erste Zeichen aus einer Zeichenfolge
- 9. Benötigen Sie Hilfe beim Entfernen seltsamer Zeichen aus der Zeichenfolge
- 10. Entfernen Sie das letzte Zeichen aus der Zeichenfolge (Python)
- 11. Entfernen Sie alle Hex-Zeichen aus der Zeichenfolge in Python
- 12. So entfernen Sie unerwünschte Zeichen aus einer Zeichenfolge?
- 13. Entfernen Sie alle nicht-stelligen Zeichen aus einer Zeichenfolge jquery?
- 14. Entfernen Sie Zeichen aus der Zeichenfolge in Standard C
- 15. Entfernen Sie Newline-Zeichen aus einer Zeichenfolge mit PHP Regex
- 16. Objective C - Entfernen Sie das letzte Zeichen aus der Zeichenfolge
- 17. Wie entfernen Sie alle alphabetischen Zeichen aus einer Zeichenfolge?
- 18. So entfernen Sie alle Zeichen aus einer Zeichenfolge
- 19. So entfernen Sie Kontrollzeichen aus UTF8-Zeichenfolge
- 20. Entfernen Sie Zeichen vor Zeichen "."
- 21. Wie extrahieren Sie bestimmte Nth Zeichen aus einer Zeichenfolge in SQL
- 22. Entfernen Sie überschüssige Leerzeichen aus einer Zeichenfolge
- 23. Ersetzen \ Zeichen in Zeichenfolge entfernen
- 24. PHP: Get nth Zeichen vom Ende der Zeichenfolge
- 25. Regex zum Entfernen bestimmter Zeichen aus der Zeichenfolge
- 26. Nicht numerische und nichtalphatische Zeichen aus einer Zeichenfolge entfernen?
- 27. Entfernen Sie n Zeichen aus der Konsole
- 28. Regex entfernen wiederholte Zeichen aus einer Zeichenfolge von Javascript
- 29. Entfernen (fast) aller nicht-numerischen Zeichen aus einer Zeichenfolge
- 30. Entfernen Sie Zeichen aus der zweiten Zeichenfolge, die in der ersten Zeichenfolge vorhanden sind
Anstatt die Länge * im Voraus * Überprüfung, kann man alternativ verwenden 'lassen index = Fortschritt (s.startIndex, 5, s.endIndex); if index! = s.endIndex {s.removeAtIndex (index)} '. –
Großartiger Punkt. In gewisser Weise wäre es nett, wenn das ein optionales ähnlich wie 'find' zurückliefert, aber ich denke, das würde bedeuten, dass es in Fällen weniger nützlich wäre, in denen" end "ein legitimer Index ist, den Sie lieber als das Ende einschließen möchten -index Sentinel. –
Ja. [Hier] (http://stackoverflow.com/a/26691258/1187415) ist ein einfaches Beispiel, in dem die Tatsache verwendet wird, dass diese 'advance()' Methode einen gültigen (nicht-optionalen) Index zurückgibt. –