在Swift中,我可以这样做:
let ordinalFormatter = NumberFormatter()
ordinalFormatter.numberStyle = .ordinal
print(ordinalFormatter.string(from: NSNumber(value: 3))) // 3rd
但在Kotlin,我认为没有办法轻易做到这一点。有这样的方式,还是我必须使用第三方库或自己编写?
答案 0 :(得分:2)
嗯,通常很难证明某些东西不存在。但我从未在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)