2

在 Swift 中,我可以这样做:

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

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

但我看不出有任何方法可以在 Kotlin 中如此轻松地做到这一点。有没有这样的方法,还是我必须使用 3rd-party 库或自己编写?

4

1 回答 1

10

嗯,通常很难证明某事不存在。但是我从来没有遇到过任何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 中的解决方案:(此处)

于 2017-01-21T00:38:51.657 回答