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

Add commas or point every 3 digits using kotlin

我想在 EditText 输入中每 3 个数字添加逗号或点。

示例:

如果你在 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?

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

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(",", "،")