在 Kotlin 中解析带逗号的数字

Ste*_*kov 4 kotlin

在 Kotlin 中,有一个Int从 a解析 an 的快捷方式String

"10".toInt()
Run Code Online (Sandbox Code Playgroud)

但是,如果数字内部有逗号,例如"1,000".toInt(),则会抛出NumberFormatException。我知道我可以在 Java 中使用NumberFormatandLocale来解析数字。不过,我想知道 Kotlin 中是否有一个快捷版本。

Abb*_*bby 12

按照NumberFormat文档NumberFormat,您也可以使用解析字符串:

val numberFormat = NumberFormat.getNumberInstance(Locale.ENGLISH) as DecimalFormat
println(numberFormat.parse("1,000"))

>>> 1000
Run Code Online (Sandbox Code Playgroud)

Kotlin 中没有捷径。您必须在某处指定区域设置,以便 Kotlin 知道其含义,。它可以是千位分隔符(如英语)或小数点(如德语):

val numberFormat = NumberFormat.getNumberInstance(Locale.GERMAN) as DecimalFormat
println(numberFormat.parse("1,000"))

>>> 1
Run Code Online (Sandbox Code Playgroud)