Kotlin有一个标准的方式来将一个数字格式化为一个英文序数?

在Swift中,我可以这样做:

let ordinalFormatter = NumberFormatter() ordinalFormatter.numberStyle = .ordinal print(ordinalFormatter.string(from: NSNumber(value: 3))) // 3rd 

但是我没有办法在Kotlin那么容易地做到这一点。 有没有这样的方式,或者我将不得不使用第三方库或写我自己的?

那么通常很难certificate什么东西不存在。 但是我从来没有遇到kotlin-stdlib中的任何function,可以做到这一点,或者可以立即适应这一点。 此外, 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中的解决方案:( 这里)