Как преобразовать это "\U202a+98\U00a0910\U00a0280\U00a05305\U202c" в строку?

Как конвертировать это \U202a+98\U00a0910\U00a0280\U00a05305\U202c в чистую строку +989102805305,

2 ответа

Решение
NSData *dataenc = [@"\u202a+98\u00a0910\u00a0280\u00a05305\u202c" dataUsingEncoding:NSUTF8StringEncoding];
NSString *encodevalue = [[NSString alloc]initWithData:dataenc encoding:NSUTF8StringEncoding];
NSLog(@"%@", encodevalue); // ‪+98 910 280 5305‬
NSLog(@"%@", [[encodevalue componentsSeparatedByCharactersInSet:nonAsciiCharacterSet] componentsJoinedByString:@""]); // 989102805305

Похоже, вам трудно понять основную идею о том, что такое строка. Строка - это просто массив символов. Хорошая новость в том, что у вас уже есть набор символов. Теперь все, что вам нужно понять, это то, что это не конец истории - теперь вам нужно сохранить массив символов в переменную, которую мы называем строковым типом данных. Ваше понимание прояснится с большей практикой, но сейчас позвольте мне попытаться помочь вам. К счастью, есть много способов превратить это в строковый тип данных в iOS. NSString (и NSMutableString) в Какао позволяет с легкостью инициализировать, форматировать и добавлять строки.

//You can use the Objective-C literal
NSString *yourStringName = @"\U202a+98\U00a0910\U00a0280\U00a05305\U202c";

//Or you can use the Objective-C format methods
NSString *formatedString = [NSString stringWithFormat:@"My string is %@", yourStringName];

если ты NSLog вне будет печатать My string is \U202a+98\U00a0910\U00a0280\U00a05305\U202c

Новый язык Swift дает вам несколько способов упаковать массив символов. В дополнение к NSString и всем фабричным методам, которые идут вместе с ним, у вас также есть встроенный тип данных String Swift. Интересно, что быстрая версия класса String на самом деле не является классом, а спроектирована как быстрая структура. Узнайте больше о быстрых классах и структурах здесь.

//The swift (and straight forward) String literal
var yourStringName = "\U202a+98\U00a0910\U00a0280\U00a05305\U202c"

//Or you can use swift's own string interpolation
var interpolatedString = "My string is " + yourStringName

//Also you may still use the NSString methods
var formatedString: NSString = NSString(format: "My string is %@", yourStringName)

Оба из них будут println() из My string is \U202a+98\U00a0910\U00a0280\U00a05305\U202c

Любой из этих способов позволит вам создавать строки в iOS/MacOSX. Я желаю вам удачи в изучении iOS и программировании в целом.

Другие вопросы по тегам