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

Sup*_*tar 1 int ordinals tostring kotlin

在Swift中,我可以执行以下操作:

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

print(ordinalFormatter.string(from: NSNumber(value: 3))) // 3rd
Run Code Online (Sandbox Code Playgroud)

但是在Kotlin中,我看不到有什么方法可以如此轻松地做到这一点。有没有这种方法,还是我必须使用第三方库或编写自己的库?

hot*_*key 5

好吧,通常很难证明不存在某些东西。但是我从来没有碰到过任何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"
}
Run Code Online (Sandbox Code Playgroud)

另外,Java解决方案:(此处)

  • `Int` 类也可以扩展,例如:`fun Int.asOrdinal() ...` (2认同)

归档时间:

查看次数:

551 次

最近记录:

8 年,10 月 前