Замена вхождений NSString - iPhone

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

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

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

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

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


person ncohen    schedule 22.03.2010    source источник


Ответы (2)


Обратная косая черта — это экранирующий символ, поэтому, если вы хотите указать фактическую обратную косую черту в строковом литерале , вам нужно использовать две обратные косые черты.

NSString *new = [old stringByReplacingOccurrencesOfString: @"\\u0153" withString:@"oe"];
person Josh Freeman    schedule 22.03.2010
comment
что, если мне нужно заменить два разных компонента строки, например, veau и u0153 - person TechnocraT; 03.01.2012

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

NSString *new = [old stringByReplacingOccurrencesOfString:@"\u0153" withString:@"oe"];
person eWolf    schedule 22.03.2010
comment
извините, я забыл упомянуть, что это уже так... все еще не работает! - person ncohen; 22.03.2010