En el Objetivo C para el iPhone, ¿cómo eliminaría el último carácter de una cadena mediante una acción de botón.Objetivo C - Eliminar el último carácter de la cadena
Respuesta
En su clase controlador, crear un método de acción va a enganchar el botón hasta en Interface Builder. Dentro de ese método se puede recortar su cadena como esta:
if ([string length] > 0) {
string = [string substringToIndex:[string length] - 1];
} else {
//no characters to delete... attempting to do so will result in a crash
}
Si quieres una forma elegante de hacer esto en una sola línea de código usted podría escribirlo como:
string = [string substringToIndex:string.length-(string.length>0)];
* Explicación de la fantasía código de una línea de fragmento:
Si hay un personaje eliminar (es decir, la longitud de la cadena es mayor que 0) (string.length>0)
vuelve 1
haciendo así el código de retorno: string = [string substringToIndex:string.length-1];
si no hay un personaje eliminar (es decir, la longitud de la cadena no es mayor que 0) (string.length>0)
devuelve 0
haciendo que el código devuelva: string = [string substringToIndex:string.length-0];
Lo que evita bloqueos.
La documentación es su amigo, NSString
admite una llamada substringWithRange
que puede acortar la cadena que tiene un retorno de la cadena acortada. No puede modificar una instancia de NSString
es inmutable. Si usted tiene una NSMutableString
disponga de un método llamado deleteCharactersInRange
que puede modificar la secuencia en el lugar
...
NSRange r;
r.location = 0;
r.size = [mutable length]-1;
NSString* shorted = [stringValue substringWithRange:r];
...
NSMakeRange a veces puede hacer que el relleno de una estructura struct parezca un poco más elegante. – dreamlax
@Harald, 'substringWithRange:' devuelve un 'NSString *'. Toma nota del puntero. –
Si se trata de un NSMutableString (que recomiendo ya que está cambiando de forma dinámica), puede utilizar:
[myString deleteCharactersInRange:NSMakeRange([myRequestString length]-1, 1)];
Las soluciones que se dan aquí en realidad no tienen en caracteres Unicode cuenta de varios bytes (" caracteres compuestos "), y podría dar como resultado cadenas Unicode no válidas.
De hecho, el archivo de cabecera IOS que contiene la declaración de substringToIndex
contiene el siguiente comentario:
Consejo: Usar con rangeOfComposedCharacterSequencesForRange: para evitar la ruptura de caracteres compuestos
Ver how to use rangeOfComposedCharacterSequenceAtIndex:
eliminar el último personaje correctamente
- 1. Eliminar el último carácter de una cadena
- 2. Python Eliminar El último carácter de la cadena y devolverlo
- 3. Eliminar el último carácter de la entrada
- 4. Eliminar último carácter/línea
- 5. Eliminar el último carácter de una cadena (VB.NET 2008)
- 6. ¿Eliminar el último carácter de una cadena en T-SQL?
- 7. Eliminar el último carácter de NSString
- 8. comprobando El último carácter de la cadena en c
- 9. Eliminar el último carácter si es DirectorySeparatorChar con C#
- 10. PHP - Eliminar el último carácter del archivo
- 11. Eliminar el último carácter de una NSMutableString
- 12. Regex para eliminar último/si existe como el último carácter en la cadena
- 13. ¿Cómo eliminar el último carácter usando sed?
- 14. ¿Cómo borrar el último carácter en una cadena en C#?
- 15. Cómo mostrar el último carácter de NSString *
- 16. ¿Cómo borrar el último carácter de una cadena usando jQuery?
- 17. Eliminar el primer carácter de una cadena
- 18. ¿Cómo eliminar el primer y el último carácter de una cadena?
- 19. ¿Cómo puedo eliminar el último carácter de una variable de cadena en ksh?
- 20. Eliminar un carácter de una cadena
- 21. cómo obtener el último carácter de una cadena?
- 22. eliminar prefijo objetivo-c mac
- 23. Strip primer y último carácter de la serie C
- 24. ¿Cómo eliminar el último carácter puesto en std :: cout?
- 25. ¿Cómo podría eliminar el último carácter de una cadena si es una puntuación, en ruby?
- 26. ¿Cómo obtengo el último carácter de una cadena?
- 27. Retire primero y último carácter de la cadena
- 28. Reemplazar \ eliminar carácter en la cadena
- 29. Borrar el último carácter de edittext
- 30. ¿Cómo puedo eliminar el carácter NULL de la cadena
Su solución tiene un error por 1 error. Debe ser [string substringToIndex: [string length] - 1]; –
Hace "cadena" se refiere a "string.text" o simplemente el nombre de la cadena – Omar
Gracias Jim, era demasiado temprano en la mañana para la aritmética, supongo. :) Omar, cadena se refiere a una variable llamada cadena que contiene el texto que desea modificar. Puede consultar la documentación sobre las diferentes formas en que puede crear un objeto NSString, ya sea desde un archivo en disco o desde datos en su aplicación. –