在 Swift 中,我可以这样做:
let ordinalFormatter = NumberFormatter()
ordinalFormatter.numberStyle = .ordinal
print(ordinalFormatter.string(from: NSNumber(value: 3))) // 3rd
但我看不出有任何方法可以在 Kotlin 中如此轻松地做到这一点。有没有这样的方法,还是我必须使用 3rd-party 库或自己编写?
嗯,通常很难证明某事不存在。但是我从来没有遇到过任何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 中的解决方案:(此处)