2010-03-22 14 views
33

Ho una NSString lunga in cui sto cercando di sostituire caratteri speciali. Parte della mia stringa assomiglia a questa:Sostituisci occorrenze di NSString - iPhone

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

Vorrei sostituire tutto \ u0153 con "oe". Ho provato:

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

ma non funziona .... non capisco perché!

risposta

78

La barra rovesciata è un escape character, quindi se si vuole specificare il carattere effettivo backslash in una stringa letterale, è è necessario utilizzare due backslash.

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

era così! GRAZIE!!!! – ncohen

+0

cosa succede se devo sostituire due diversi componenti della stringa come "veau" e "u0153" – TechnocraT

+0

Quindi annidarli! – iOSdev

7

NSString è immutabile, quindi la funzione genera una nuova stringa che si deve memorizzare:

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

scusate, ho dimenticato di dire che questo è già il caso ... continua a non funzionare! – ncohen

Problemi correlati