Joh*_*ann 18 format numbers objective-c number-formatting ios
在Objective C中,有没有什么方法可以格式化integer
为序数1 =>"1st",2 =>"2nd"等...适用于任何语言?因此,如果用户是法国人,他将看到"1er","2ieme"等.
非常感谢!
编辑:这是一个iOs应用程序
sud*_*-rf 14
你看过TTTOrdinalNumberFormatter
哪个了FormatterKit
吗?它很好用,我很确定它正是你正在寻找的.
以下是从套件中获取的示例:
TTTOrdinalNumberFormatter *ordinalNumberFormatter = [[TTTOrdinalNumberFormatter alloc] init];
[ordinalNumberFormatter setLocale:[NSLocale currentLocale]];
[ordinalNumberFormatter setGrammaticalGender:TTTOrdinalNumberFormatterMaleGender];
NSNumber *number = [NSNumber numberWithInteger:2];
NSLog(@"%@", [NSString stringWithFormat:NSLocalizedString(@"You came in %@ place!", nil), [ordinalNumberFormatter stringFromNumber:number]]);
Run Code Online (Sandbox Code Playgroud)
假设你已经为"你进入%@ place!"提供了本地化的字符串,输出将是:
* English: "You came in 2nd place!"
* French: "Vous êtes venu à la 2eme place!"
* Spanish: "Usted llegó en 2.o lugar!"
Run Code Online (Sandbox Code Playgroud)
该解决方案可立即从NSNumberFormatter获得:
- (NSString *)getOrdinalStringFromInteger:(NSInteger)integer
{
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
[formatter setNumberStyle:NSNumberFormatterOrdinalStyle];
return [formatter stringFromNumber:[NSNumber numberWithInteger:integer]];
}
Run Code Online (Sandbox Code Playgroud)