在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/