使用Kotlin添加逗号或每3位数字点

时间:2018-11-08 11:34:19

标签: kotlin numbers

我是Kotlin编程的新手。我想在编辑文本输入中添加逗号或每3位数字。

示例:

  • 输入:1000。输出:1.000
  • 输入:11000。输出:11.000

谢谢!

4 个答案:

答案 0 :(得分:1)

System.out.println(NumberFormat.getNumberInstance(Locale.US).format(35634646));

答案 1 :(得分:0)

如果您使用的是JVM,则可以使用

"%,d".format(input)

,它为输入11,000提供11000。将,替换为所需的任何定界符。

如果要使用预定义的数字格式,例如对于当前语言环境,请使用:

java.text.NumberFormat.getIntegerInstance().format(input);

还要确保检查其他格式实例,例如getCurrencyInstancegetPercentInstance。请注意,您也可以将NumberFormat与其他语言环境一起使用。只需将它们传递给get*Instance方法即可。

某些第二个变体也可以在这里找到:Converting Integer to String with comma for thousands

如果您通过Javascript使用它,可能会对以下内容感兴趣:How do I format numbers using JavaScript?

答案 2 :(得分:0)

对于没有获取 Locale 的方法,您可以使用扩展将您的 Int 转换为如下所示的格式化字符串:

fun Int.formatWithThousandComma(): String {
    val result = StringBuilder()
    val size = this.toString().length
    return if (size > 3) {
        for (i in size - 1 downTo 0) {
            result.insert(0, this.toString()[i])
            if ((i != size - 1) && i != 0 && (size - i) % 3 == 0)
                result.insert(0, "\'")
        }
        result.toString()
    } else
        this.toString()
}

答案 3 :(得分:0)

这是一种可以让您用任何字符替换默认分隔符的简单方法:

val myNumber = NumberFormat.getNumberInstance(Locale.US)
   .format(123456789)
   .replace(",", "،")