2010-03-22 2 views
33

У меня длинный NSString, в котором я пытаюсь заменить специальные символы. Часть моей строки выглядит так:Замените вхождения NSString - iPhone

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

Я хотел бы заменить все \ u0153 на «oe». Я пробовал:

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

но он не работает .... я не понимаю, почему!

ответ

78

обратной косой является escape character, так что если вы хотите, чтобы указать фактический символ обратной косой черты в строковый литерал, вам необходимо использовать две обратные косые черты.

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

это было! СПАСИБО!!!! – ncohen

+0

Что делать, если мне нужно заменить два разных компонента строки, например, «veau» и «u0153» – TechnocraT

+0

Затем вставьте их! – iOSdev

7

NSString неизменен, поэтому функция создает новую строку, которую вы должны хранить:

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

извините, я забыл упомянуть, что это уже случай ... все еще не работает! – ncohen

Смежные вопросы