Nell'obiettivo C per l'iPhone, come rimuovere l'ultimo carattere di una stringa utilizzando un'azione del pulsante.Obiettivo C - Rimuovere l'ultimo carattere dalla stringa
risposta
Nella classe controllore, creare un metodo di azione si collegare il pulsante fino a in Interface Builder. Dentro questo metodo si può tagliare la stringa in questo modo:
if ([string length] > 0) {
string = [string substringToIndex:[string length] - 1];
} else {
//no characters to delete... attempting to do so will result in a crash
}
Se si desidera un modo elegante per fare questo in una sola riga di codice potresti scrivere come:
string = [string substringToIndex:string.length-(string.length>0)];
* Spiegazione di fantasia codice di un linea di frammento:
Se c'è un personaggio da cancellare (vale a dire la lunghezza della stringa è maggiore di 0) (string.length>0)
rendimenti 1
rendendo così il codice di ritorno: string = [string substringToIndex:string.length-1];
se non c'è un carattere da cancellare (cioè la lunghezza della stringa non è superiore a 0)
restituisce 0
restituendo il codice: string = [string substringToIndex:string.length-0];
Che impedisce arresti anomali.
La documentazione è un tuo amico, NSString
supporta una chiamata substringWithRange
che può accorciare la stringa che hai restituito la stringa abbreviata. Non è possibile modificare un'istanza di NSString
è immutabile. Se si dispone di un NSMutableString
è ha un metodo chiamato deleteCharactersInRange
che può modificare la stringa in posizione
...
NSRange r;
r.location = 0;
r.size = [mutable length]-1;
NSString* shorted = [stringValue substringWithRange:r];
...
NSMakeRange a volte può rendere un po 'più elegante il riempimento di una struttura struct. – dreamlax
@Harald, 'substringWithRange:' restituisce un 'NSString *'. Prendi nota del puntatore. –
Se si tratta di un NSMutableString (che vi consiglio vivamente in quanto si sta modificando in modo dinamico), è possibile utilizzare:
[myString deleteCharactersInRange:NSMakeRange([myRequestString length]-1, 1)];
Le soluzioni qui riportati in realtà non tengono conto multi-byte caratteri Unicode (" caratteri composti "), e potrebbe causare stringhe Unicode non valide.
In realtà, il file di intestazione iOS che contiene la dichiarazione di substringToIndex
contiene il seguente commento:
Suggerimento: usate con rangeOfComposedCharacterSequencesForRange: per evitare di rompere i personaggi composte
Vedi how to use rangeOfComposedCharacterSequenceAtIndex:
da eliminare l'ultimo carattere correttamente.
- 1. Rimuovere carattere dalla stringa utilizzando JavaScript
- 2. Rimuovere primo carattere dalla stringa se 0
- 3. Come rimuovere il carattere NULL dalla stringa
- 4. iPhone rimuovere stringa dalla stringa
- 5. Rimuovi nesimo carattere dalla stringa
- 6. Rimuovere carattere punto da una stringa C#
- 7. Python Rimuovere ultimo carattere dalla stringa e restituirlo
- 8. Rimuovere tutte le occorrenze di carattere dalla stringa
- 9. Rimuovere "www", "http: //" dalla stringa
- 10. Rimuovere stringa dalla lista se dalla lista
- 11. % segno nella stringa c obiettivo
- 12. Come rimuovere tutte le occorrenze di un dato carattere dalla stringa in C?
- 13. Striscia primo e ultimo carattere dalla stringa C
- 14. R rimuovere l'ultima parola dalla stringa
- 15. Come rimuovere i primi tre caratteri dalla stringa con C?
- 16. Rimuovere gli spazi bianchi dalla stringa in Objective-C
- 17. Come rimuovere particolare attributo dalla stringa JSON utilizzando C#
- 18. Converti stringa alla data Obiettivo-C
- 19. Rimuovere il primo carattere di una stringa
- 20. Rimuovere primo e l'ultimo carattere da stringa
- 21. Rimuovere un singolo carattere da una stringa?
- 22. Metodi per rimuovere caratteri specifici dalla stringa?
- 23. rimuovere il duplicato dalla stringa in PHP
- 24. Rimuovere la scheda ('\ t') dalla stringa javascript
- 25. Rimuovere i caratteri duplicati dalla stringa
- 26. Come rimuovere parentesi dalla stringa in php?
- 27. espressione regex per rimuovere eed dalla stringa
- 28. Come rimuovere l'accento dalla stringa in WP7
- 29. PHP Regex per rimuovere http: // dalla stringa
- 30. Come rimuovere tutto. dalla stringa eccetto l'ultima?
La tua soluzione ha un difetto di 1 bug. Dovrebbe essere [string substringToIndex: [string length] - 1]; –
Fa "stringa" si riferisce a "string.text" o solo il nome della stringa – Omar
Grazie Jim, era troppo presto per l'aritmetica, credo. :) Omar, stringa si riferisce a una variabile chiamata stringa che contiene il testo che si desidera modificare. Puoi dare un'occhiata alla documentazione per i diversi modi in cui puoi creare un oggetto NSString, da un file su disco o da dati nella tua applicazione. –