我在localizedStringWithFormat:
类上使用NSString
方法将七位整数转换为代码中的某个NSString,并且现在需要将其转换回整数。
由于我的应用程序已针对三个数字之后具有不同分隔符的不同区域进行了本地化(例如,美国的“。”和德国的“,”),将本地化的NSString整数值转换为整数的最佳方法是什么吗
我在我的字符串上尝试integerValue
如下,但它不起作用:
// Somewhere in code:
int num = 1049000;
NSString *myLocalizedNumString = [NSString localizedStringWithFormat:@"%d", num];
// myLocalizedNumString (U.S.): '1,049,000'
// myLocalizedNumString (Germany): '1.049.000'
// Somewhere else where I have a reference to my string but none to the num:
int restoredNum = [myLocalizedNumString integerValue];
// restoredNum isn't 1049000 (it's 0, the initial value)
这样做的好方法是什么?
答案 0 :(得分:1)
尽管名称NSNumberFormatter
转换为两种方式,但它也是一个字符串解析器。将数字格式化程序的numberFromString
属性设置为numberStyle
后,使用方法NSNumberFormatterDecimalStyle
可以解决您的问题。
代码可能如下所示:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
NSInteger restoredNum = [[formatter numberFromString:myLocalizedNumString] integerValue];