2010-03-22 11 views
33

Tengo un NSString largo en el que estoy tratando de reemplazar caracteres especiales. Parte de mi cadena se ve así:Reemplazar ocurrencias de NSString - iPhone

"veau (c\u00f4telette)","veau (filet)","agneau (gigot)","agneau (c\u00f4telette)","b**\u0153**uf (hach\u00e9)","porc (hach\u00e9)" 

Me gustaría reemplazar todo el \ u0153 con "oe". Lo he intentado:

[response stringByReplacingOccurrencesOfString:@"\u0153" withString:@"oe"]; 

pero no funciona ... ¡No entiendo por qué!

Respuesta

78

La barra invertida es un escape character, por lo que si desea especificar el carácter real de la barra invertida en una cadena literal, Necesito usar dos barras diagonales inversas.

NSString *new = [old stringByReplacingOccurrencesOfString: @"\\u0153" withString:@"oe"]; 
+0

eso fue todo! ¡¡¡¡GRACIAS!!!! – ncohen

+0

¿Qué pasa si tengo que reemplazar dos componentes diferentes de la cadena como "veau" y "u0153" – TechnocraT

+0

¡Entonces nidifícalos! – iOSdev

7

NSString es inmutable, por lo que la función genera una nueva cadena que se tiene que almacenar:

NSString *new = [old stringByReplacingOccurrencesOfString:@"\u0153" withString:@"oe"]; 
+0

lo siento, me olvidé de mencionar que este ya es el caso ... todavía no funciona! – ncohen

Cuestiones relacionadas