Ho visto molti metodi per rimuovere l'ultimo carattere da una stringa. C'è comunque un modo per rimuovere qualsiasi vecchio carattere basato sul suo indice?Rimuovi nesimo carattere dalla stringa
risposta
Mentre gli indici di stringa non sono ad accesso casuale e non sono numeri, è possibile li avanzare di un numero al fine di accedere al carattere n-esimo:
var s = "Hello, I must be going"
s.removeAtIndex(advance(s.startIndex, 5))
println(s) // prints "Hello I must be going"
Naturalmente, si dovrebbe sempre verificare la stringa è almeno 5 di lunghezza prima di fare questo!
edit: come sottolinea @MartinR, è possibile utilizzare la versione con il fine-index di anticipo per evitare il rischio di correre oltre la fine:
let index = advance(s.startIndex, 5, s.endIndex)
if index != s.endIndex { s.removeAtIndex(index) }
Come sempre, optional sono tuo amico:
// 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!"
Diciamo che vogliamo rimuovere la "w". (È al sesto posto dell'indice.)
Primo: creare un indice per quella posizione. (Sto rendendo il tipo di ritorno Index esplicito, non è obbligatorio).
let index:Index = hello.startIndex.advancedBy(6)
Secondo: Call removeAtIndex() e passarlo nostro indice appena fatta. (Si noti che restituisce il personaggio in questione)
let choppedChar:Character = hello.removeAtIndex(index)
print(hello)
// stampa ciao ondo!
print(choppedChar)
// stampa w
- 1. Rimuovi gli accenti dalla stringa
- 2. Rimuovi HTML dalla stringa
- 3. Sostituisci \ rimuovi carattere nella stringa
- 4. Rimuovi carattere finale da stringa (Python)
- 5. PHP Rimuovi URL dalla stringa
- 6. Rimuovi l'ultima riga dalla stringa
- 7. Python/Rimuovi carattere speciale da stringa
- 8. Rimuovi l'ultimo carattere di una stringa
- 9. Rimuovi carattere di fine riga dalla prima riga di NSString
- 10. Rimuovi ogni ennesimo elemento dalla stringa
- 11. PHP rimuovi i simboli dalla stringa
- 12. Rimuovi tutte le occorrenze di \ dalla stringa
- 13. Rimuovi caratteri dalla fine di una stringa Scala
- 14. Rimuovi caratteri prima del carattere "."
- 15. Rimuovi il testo dalla stringa fino a quando non raggiunge un determinato carattere
- 16. Rimuovere carattere dalla stringa utilizzando JavaScript
- 17. Obiettivo C - Rimuovere l'ultimo carattere dalla stringa
- 18. Rimuovere primo carattere dalla stringa se 0
- 19. Come rimuovere il carattere NULL dalla stringa
- 20. Rimuovi l'ultimo carattere da una stringa in sql più
- 21. Rimuovi l'ultimo carattere di una stringa (VB.NET 2008)
- 22. Rimuovi stringa dopo l'ultima occorrenza di un carattere
- 23. Rimuovi poligono dalla mappa
- 24. elemento rimuovi dalla matrice
- 25. Rimuovi tutti i caratteri non ASCII dalla stringa
- 26. PHP - rimuovi <img> tag dalla stringa
- 27. Rimuovi tutti gli spazi bianchi dalla stringa C# con regex
- 28. Rimuovi più tipi char dalla fine della stringa
- 29. Rimuovi carattere inutilizzato Icone impressionanti
- 30. iPhone rimuovere stringa dalla stringa
Invece di controllare la lunghezza * * in anticipo, si può utilizzare alternativamente 'lasciare index = anticipo (s.startIndex, 5, s.endIndex); if index! = s.endIndex {s.removeAtIndex (index)} '. –
Ottimo punto. In un certo senso sarebbe bello se questo restituisse un optional in modo simile a 'find', ma suppongo che ciò significherebbe che sarebbe meno utile nei casi in cui' end' è un indice legit che vuoi includere piuttosto che la fine di -index sentinella. –
Sì. [Here] (http://stackoverflow.com/a/26691258/1187415) è un semplice esempio in cui viene utilizzato il fatto che questo metodo 'advance()' restituisce un indice valido (non opzionale). –