Я использую NSNumberFormatter
для форматирования чисел в строках. У меня есть устройство с форматом иврита (Израиль) (настройки-> Общие-> Международные-> Формат региона). Когда я пытаюсь отформатировать число 100, например, я получаю 100 $. Моя цель - удалить пробел перед знаком валюты и получить всего 100 $NSNumberFormatter, удаляющий пробелы перед валютой
2
A
ответ
3
Я в конечном итоге изменения positiveSuffix и свойства negativeSuffix путем удаления пробелов из них
, потому что мой NSNumberFormatter статично в моем приложении я поставил их к нулю в конце каждое использование
static NSNumberFormatter *currencyFormatter;
if (!currencyFormatter) {
currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[currencyFormatter setNegativeFormat:@""];
}
// remove spaces at the suffix
currencyFormatter.positiveSuffix = [currencyFormatter.positiveSuffix stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
currencyFormatter.negativeSuffix = [currencyFormatter.negativeSuffix stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
// get the return number
NSString* retNum = [currencyFormatter stringFromNumber:val];
// this code is for the next time using currencyFormatter
currencyFormatter.positiveSuffix = nil;
currencyFormatter.negativeSuffix = nil;
return retNum;
0
Как насчет того, чтобы просто удалить все пробелы из строки перед запуском через NSNumberFormatter? (Как ответ в этом question)
NSString *stringWithoutSpaces = [myString
stringByReplacingOccurrencesOfString:@" " withString:@""];
В некоторых форматах пространства используются для разделения цифр вместо запятых. Я ищу безопасный способ – user1746700
Возможно, вы могли бы заменить '$' '' ''? Но я предполагаю, что также может быть положение, которое нарушает это. – Patrick