java使用正则表达为数字添加千位符的简单方法
"260000008".replaceAll("(?<=\\d)(?=(?:\\d{3})+$)", ",");
// => 260,000,008
(?<=\\d)(?=(\\d{3})+(\\.|$))
正则表达式:
(?<=\d)(?<!\.\d*)(?=(\d{3})+(\.|$))
替换为:,
我们拆开来看看:
(?<=\d) #当前位置前面必须是数字
(?<!\.\d*) #当前位置前面不能是小数点
(?=(\d{3})+(\.|$)) #当前位置是3个数字的循环,最后到小数点或结束
对照一串数字我们就不难发现,上面指定的当前位置,就是千分位所在位置,如:
345,678
12,345,678.12345
2,345,678