Kotlin是否有标准方法将数字格式化为英文序数?

时间:2017-01-20 21:31:12

标签: int kotlin tostring ordinals

在Swift中,我可以这样做:

let ordinalFormatter = NumberFormatter()
ordinalFormatter.numberStyle = .ordinal

print(ordinalFormatter.string(from: NSNumber(value: 3))) // 3rd

但在Kotlin,我认为没有办法轻易做到这一点。有这样的方式,还是我必须使用第三方库或自己编写?

1 个答案:

答案 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)