NSNumberFormatter 删除货币前的空格

use*_*700 3 objective-c nsnumberformatter ios

我正在使用NSNumberFormatter将我的数字格式化为字符串。我有一个希伯来语(以色列)区域格式(设置->常规->国际->区域格式)的设备。例如,当我尝试格式化数字 100 时,我得到 100 $。我的目标是去掉货币符号前的空格,只得到 100 美元

use*_*700 5

我最终通过从中删除空格来更改 positiveSuffix 和 negativeSuffix 属性

因为我的 NSNumberFormatter 在我的应用程序中是静态的,所以我在每次使用结束时将它们设置为 nil

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;
Run Code Online (Sandbox Code Playgroud)