2010-03-22 36 views
33

Tôi có một NSString dài trong đó tôi đang cố gắng thay thế các ký tự đặc biệt. Một phần của chuỗi của tôi trông giống như sau:Thay thế các lần xuất hiện của NSString - iPhone

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

Tôi muốn thay thế tất cả \ u0153 bằng "oe". Tôi đã thử:

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

nhưng nó không hoạt động .... Tôi không hiểu tại sao!

Trả lời

78

Các dấu chéo ngược là một escape character, vì vậy nếu bạn muốn chỉ định nhân vật xuyệc ngược thực tế trong một chuỗi chữ, bạn cần sử dụng hai dấu gạch chéo ngược.

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

đó là nó! CÁM ƠN!!!! – ncohen

+0

điều gì sẽ xảy ra nếu tôi phải thay thế hai thành phần khác nhau của chuỗi như "veau" và "u0153" – TechnocraT

+0

Sau đó lồng chúng lại! – iOSdev

7

NSString là không thay đổi, vì vậy chức năng tạo ra một chuỗi mới mà bạn có để lưu trữ:

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

xin lỗi, tôi quên đề cập đến trường hợp này ... vẫn không hoạt động! – ncohen

Các vấn đề liên quan