Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: ncohenОтветов: 2

У меня есть длинная 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"];

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

iphoneobjective-creplacensstring

Ответы

Ответ 1 · рейтинг 83 · Josh Freeman

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

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

Ответ 2 · рейтинг 7 · eWolf

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы