2010-03-22 11 views
33

Mam długi NSString, w którym próbuję zastąpić znaki specjalne. Część mojego ciągu wygląda następująco:Zamień wystąpienia NSString - iPhone

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

Chciałbym wymienić wszystkie \ u0153 na "oe". Próbowałem:

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

ale to nie działa .... Nie rozumiem, dlaczego!

Odpowiedz

78

Odwrotny ukośnik jest escape character, więc jeśli chcesz, aby określić rzeczywistą ukośników w ciąg dosłowny, ty trzeba użyć dwóch ukośników odwrotnych.

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

to było to! DZIĘKI!!!! – ncohen

+0

co jeśli muszę wymienić dwa różne komponenty ciągu, takie jak "veau" i "u0153" – TechnocraT

+0

Następnie zagnieździć je! – iOSdev

7

NSString jest niezmienna, więc funkcja generuje nowy ciąg znaków, który trzeba przechowywać:

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

Przepraszam, zapomniałem wspomnieć, że już tak jest ... nadal nie działa! – ncohen

Powiązane problemy