java使用正则表达为数字添加千位符的简单方法

"260000008".replaceAll("(?<=\d)(?=(?:\d{3})+$)", ",");

// => 260,000,008

(?<=\d)(?=(\d{3})+(\.|$))

正则表达式:

  1. (?<=d)(?<!.d*)(?=(d{3})+(.|$))

替换为:,

我们拆开来看看:

 
  1. (?<=d) #当前位置前面必须是数字
  2. (?<!.d*) #当前位置前面不能是小数点
  3. (?=(d{3})+(.|$)) #当前位置是3个数字的循环,最后到小数点或结束

对照一串数字我们就不难发现,上面指定的当前位置,就是千分位所在位置,如:

 
  1. 345,678
  2. 12,345,678.12345
  3. 2,345,678
原文地址:https://www.cnblogs.com/xianfengzhike/p/10494659.html