Скажем, я получаю строку «123 4,56» из следующего кода (у меня есть русский локальный на данный момент, который имеет запятую как разделитель по умолчанию, а не точку), как мне удалите из него пространство, которое на самом деле является нерасширяющимся пространством и стандартным кодом, например [str stringByReplacingOccurrencesOfString: @ "" withString: @ ""]; не будет работать:NSString удалить не торможение
NSString* amount = @"1234.56";
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_UK"]];
NSNumber *num = [formatter numberFromString:amount];
NSString* str = [NSString localizedStringWithFormat:@"%.2F", [num doubleValue]];
NSLog(@"Str Value: %@", str);
NSString *newStr = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"New Str Value: %@", newStr);
Выход я получаю:
Str Value: 1 234,56
New Str Value: 1 234,56
Проблема, которую я пытаюсь решить это я получаю строку с сервера, который является валютой (то есть 123,45) и я необходимо отобразить это в UITextField. Проблема в том, что я не могу просто отображать значение, исходящее от сервера, потому что оно зависит от локального пользователя. Если у пользователя есть локальная сеть в Великобритании, которая работает нормально, однако, если у пользователя есть русский локальный я должен отображать запятую вместо точки, таким образом, в основном, что делает код выше. Проблема, которую я получаю, заключается в том, что после преобразования строки из одного локального в другой есть добавленное к ней раздражающее пространство, от которого я пытаюсь избавиться.
Решение основано на Doro ответить
[str stringByReplacingOccurrencesOfString:@"\u00a0" withString:@""];
'stringByTrimmingCharactersInSet:' будет делать это только в начале и в конце строки. – Larme
Что возвращает эта строка? 'stringByReplacingOccurrencesOfString' – Nishant
@Nishant возвращает исходную строку с пробелом – DarkAPI