2010-03-22 21 views
33

Ich habe einen langen NSString, in dem ich versuche, Sonderzeichen zu ersetzen. Ein Teil meiner Zeichenfolge sieht so aus:Ersetzen von Vorkommen von NSString - iPhone

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

Ich möchte alle \ u0153 durch "oe" ersetzen. Ich habe versucht:

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

aber es funktioniert nicht .... Ich verstehe nicht warum!

Antwort

78

Der Backslash ein escape character ist, also, wenn Sie die tatsächliche Backslash in einem String-Literal angeben möchten, können Sie müssen zwei Backslashes verwenden.

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

das war es! DANKE!!!! – ncohen

+0

was ist, wenn ich zwei verschiedene Komponenten der Zeichenfolge wie "Veau" und "U0153" ersetzen muss – TechnocraT

+0

Dann nest sie! – iOSdev

7

NSString ist unveränderlich, so dass die Funktion erzeugt eine neue Zeichenfolge, die Sie speichern müssen:

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

Entschuldigung, ich habe vergessen zu erwähnen, dass dies bereits der Fall ist ... immer noch nicht funktioniert! – ncohen

Verwandte Themen