int - Kotlin是否有将数字格式化为英语序数的标准方法?

标签 int kotlin tostring ordinals

在Swift中,我可以执行以下操作:

let ordinalFormatter = NumberFormatter()
ordinalFormatter.numberStyle = .ordinal

print(ordinalFormatter.string(from: NSNumber(value: 3))) // 3rd

但是在Kotlin中,我看不到有什么方法可以如此轻松地做到这一点。有没有这种方法,还是我必须使用第三方库或编写自己的库?

最佳答案

好吧,通常很难证明不存在某些东西。但是我从来没有遇到过kotlin-stdlib中的任何函数可以做到这一点或可以立即对此进行调整。而且,kotlin-stdlib似乎不包含任何特定于语言环境的内容(序号当然是数字)。

我想您实际上应该使用某些第三方软件或实施自己的解决方案,这可能很简单:

fun ordinalOf(i: Int) = "$i" + if (i % 100 in 11..13) "th" else when (i % 10) {
    1 -> "st"
    2 -> "nd"
    3 -> "rd"
    else -> "th"
}

另外,Java解决方案:(here)

关于int - Kotlin是否有将数字格式化为英语序数的标准方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41772666/

相关文章:

swift - 泛型函数的类型应该采用什么协议(protocol)来将任何数字类型作为 Swift 中的参数?

android - 在Android中绘制圆角矩形

intellij-idea - 使用 IntelliJ IDEA 构建 Gradle 多模块的正确结构

scala - 在 Scala 中使用选项的惯用方式

c++ - 检查输入是一个整数

java - 交换相对行/列中所有整数或字符的二维数组

Python 为什么 int ("0") 返回 false

android - Kotlin 乐趣过早回归

json - mongodb printjson 会输出 ObjectId 到结果,不能用于 JSON.parse

java - 所有类的类声明、构造函数和 toString 方法