¿Cuál es la mejor manera de reemplazar un caracter por una cadena en Objective-C para iPhone SDK?Reemplazo de cadena en Objective-C
Respuesta
Se puede usar el método
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target
withString:(NSString *)replacement
... para obtener una nueva cadena con una subcadena reemplazado (Ver NSString
documentación para otros)
ejemplo, el uso
NSString *str = @"This is a string";
str = [str stringByReplacingOccurrencesOfString:@"string"
withString:@"duck"];
NSString
objetos son inmutables (no se pueden cambiar), pero hay una subclase mutable, NSMutableString
, que le ofrece varios métodos para reemplazar caracteres dentro de una cadena. Probablemente sea tu mejor opción.
El problema existe en versiones anteriores en el iOS. en la última, la derecha-izquierda funciona bien. lo que hice, es el siguiente:
primer puedo comprobar la versión de IOS:
if (![self compareCurVersionTo:4 minor:3 point:0])
de: trabajo
// set RTL on the start on each line (except the first)
myUITextView.text = [myUITextView.text stringByReplacingOccurrencesOfString:@"\n"
withString:@"\u202B\n"];
Si desea múltiples sustitución de cadenas:
NSString *s = @"foo/bar:baz.foo";
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"/:."];
s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];
NSLog(@"%@", s); // => foobarbazfoo
También es posible reemplazar cadenas con stringByReplacingCharactersInRange: withString:
for (int i = 0; i < card.length - 4; i++) {
if (![[card substringWithRange:NSMakeRange(i, 1)] isEqual:@" "]) {
NSRange range = NSMakeRange(i, 1);
card = [card stringByReplacingCharactersInRange:range withString:@"*"];
}
} //out: **** **** **** 1234
NSString *stringreplace=[yourString stringByReplacingOccurrencesOfString:@"search" withString:@"new_string"];
Utilice el enlace [editar] para explicar cómo funciona este código y no solo proporcione el código, ya que una explicación es más probable que ayude a los lectores futuros. Ver también [respuesta]. [fuente] (http://stackoverflow.com/users/5244995) –
- 1. Cadena de reemplazo en Sass
- 2. Reemplazo de cadena XSLT
- 3. T-SQL cadena de reemplazo
- 4. Reemplazo de cadena en un div
- 5. Bloques ObjectiveC equivalente en Java
- 6. ObjectiveC Parse Integer from String
- 7. ¿Cómo reemplazo varios elementos en una cadena? cadena
- 8. Oracle REGEXP_REPLACE reemplazo mayúsculas una cadena
- 9. objectivec: fb publicar comentario error
- 10. ¿Cómo reemplazo parte de una cadena en PHP?
- 11. Reemplazo de la barra invertida en una cadena
- 12. ¿Cómo reemplazo la * primera instancia * de una cadena en .NET?
- 13. primer reemplazo de una cadena en un archivo usando sed
- 14. Reemplazo basado en la posición en la cadena
- 15. ¿Cómo reemplazo el último caracter en una cadena con VB6?
- 16. pregunta sobre el método de reemplazo de cadena de JavaScript
- 17. Reemplazo de caracteres en cadenas en VB.NET
- 18. Cómo dividir la nueva línea de NSString en ObjectiveC
- 19. Pros y contras del uso de excepción en IOS/ObjectiveC
- 20. En R, ¿cómo reemplazo una cadena que contiene un cierto patrón con otra cadena?
- 21. expresiones regulares reemplazo simple para mantener cadena original
- 22. Javascript búsqueda y reemplazo
- 23. Reemplazo alternado de las subcadenas
- 24. Reemplazo de umlauts en JS
- 25. ¿Puedo colocar un ObjectiveC @selector en un NSDictionary?
- 26. obteniendo el error "invalid_client" en la muestra gdata-objectivec-client
- 27. enviar una notificación desde javascript en UIWebView a ObjectiveC
- 28. ¿Cómo implementar un puente sin cargo en ObjectiveC/C?
- 29. ¿Reemplazo de cadena en un archivo de texto completo en Python 3.x?
- 30. evadir el carácter '\' en la cadena de reemplazo en una expresión de sed
pensé el punto de tener NSString y una subclase NSMutableString fue porque una instancia de NSString es * inmutable *. Mientras que, como cualquier persona en su sano juicio, prefiero tener patos que cuerdas en cualquier momento, el hecho de que hayas sobreescrito el contenido de 'str' me dejó maravillado. – ele
Pero supongo que la dirección de 'str' cambió en el proceso – Colas
, no cambia. str ahora contiene una cadena completamente nueva. stringByReplacingOccurencesOfString NO muta la cadena. Simplemente devuelve una nueva cadena. –