Objective-C:将数字格式化为序数:1,2,3,...到1st,2nd,3rd [英] Objective-C: format numbers to ordinals: 1, 2, 3, .. to 1st, 2nd, 3rd
问题描述
整数
为序号1 =>1st,2 =>2nd等。 。适用于任何语言?
因此,如果用户是法国人,他会看到1er,2ieme等..
非常感谢!
编辑:
这是用于一个iOs应用程序
你有没有看过 TTTOrdinalNumberFormatter
这是在 FormatterKit
强> ?它工作的很好,我很确定这正是你在找什么。
以下是一个从套件中取得的例子:
TTTOrdinalNumberFormatter * ordinalNumberFormatter = [[TTTOrdinalNumberFormatter alloc] init];
[ordinalNumberFormatter setLocale:[NSLocale currentLocale]];
[ordinalNumberFormatter setGrammaticalGender:TTTOrdinalNumberFormatterMaleGender];
NSNumber * number = [NSNumber numberWithInteger:2];
NSLog(@%@,[NSString stringWithFormat:NSLocalizedString(@You come in%@ place!,nil),[ordinalNumberFormatter stringFromNumber:number]]);
假设您已经提供了您来自%@ place!的本地化字符串, be:
*英语:你来了第二名!
*法语:Vousêtesvenuàla 2eme place!
*西班牙文:Usugle!2.o lugar!
In Objective C, is there any way to format an integer
to ordinals
1 => "1st", 2 => "2nd" etc... that works for any language?
So if the user is French he will see "1er", "2ieme" etc..
Thanks a lot!
Edit: This is for an iOs app
Have you taken a look at TTTOrdinalNumberFormatter
which is in FormatterKit
? It works great, and I'm pretty sure it's exactly what you're looking for.
Here's an example taken from the kit:
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]]);
Assuming you've provided localized strings for "You came in %@ place!", the output would be:
* English: "You came in 2nd place!"
* French: "Vous êtes venu à la 2eme place!"
* Spanish: "Usted llegó en 2.o lugar!"
这篇关于Objective-C:将数字格式化为序数:1,2,3,...到1st,2nd,3rd的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!