使用kotlin每隔3位添加逗号或点

使用kotlin每隔3位添加逗号或点,kotlin,numbers,number-formatting,Kotlin,Numbers,Number Formatting,我想在EditText输入中每隔3位添加逗号或点 例如: 输入:1000。产出:1.000 投入:11000。产出:11.000 如果您在JVM上,您可以使用 "%,d".format(input) 它为输入11000提供11000。用所需的任何分隔符替换, 如果要使用预定义的数字格式,例如,对于当前区域设置,请使用: java.text.NumberFormat.getIntegerInstance().format(input); 还要确保检查其他格式实例,例如getCurrencyI

我想在EditText输入中每隔3位添加逗号或点

例如:

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

如果您在JVM上,您可以使用

"%,d".format(input)
它为输入
11000
提供
11000
。用所需的任何分隔符替换

如果要使用预定义的数字格式,例如,对于当前区域设置,请使用:

java.text.NumberFormat.getIntegerInstance().format(input);
还要确保检查其他格式实例,例如
getCurrencyInstance
getPercentInstance
。请注意,您也可以将
NumberFormat
用于其他地区。只需将它们传递给
get*Instance
-方法

第二种变体也可在此处找到:


如果您通过Javascript使用它,您可能会感兴趣:

对于不获取区域设置的方法,您可以使用扩展将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()
}


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

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

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