在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解决方案:(此处)