【问题标题】:Formatting a number to ordinal number? (1st, 2nd, etc..)将数字格式化为序数? (第 1 次、第 2 次等)
【发布时间】:2011-05-05 03:31:20
【问题描述】:

有没有办法将 cocoa 中的数字格式化为其序号字符串 1st、2nd、3rd 等...最好是本地化的? 谢谢, 何塞

【问题讨论】:

    标签: cocoa nsnumberformatter


    【解决方案1】:

    从 iOS 9.0+、macOS 10.11+、tvOS 9.0+ 和 watchOS 2.0+ 开始,这是在 Foundation 中:

    斯威夫特

    let ordinalFormatter = NumberFormatter()
    ordinalFormatter.numberStyle = .ordinal
    
    print(ordinalFormatter.string(from: NSNumber(value: 3))) // 3rd
    

    目标 C

    NSNumberFormatter * ordinalFormatter = [NumberFormatter new];
    ordinalFormatter.numberStyle = NSNumberFormatterOrdinalStyle;
    
    NSLog([ordinalFormatter stringFromNumber: @3]); // 3rd
    

    【讨论】:

      【解决方案2】:

      ADNOrdinalNumberFormatter 进行序数格式化,但遗憾的是不支持本地化。

      【讨论】:

        【解决方案3】:

        来自FormatterKitTTTOrdinalNumberFormatter 使用以下语言进行序数格式化:

        • 中文
        • 荷兰语
        • 英语
        • 法语
        • 德语
        • 意大利语
        • 爱尔兰语
        • 日语
        • 葡萄牙语
        • 西班牙语

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多