项目需要这样一个转换,找了找,没找到现成的,只好自己写了个。 import java.util.Arrays; public class TestEx { public static void main(String[] args) { for (int i = 1; i < 21; i++) { char[] c = new char[i]; Arrays.fill(c, '1'); String tmpStr = new String(c); System.out.println(tmpStr + ": " + translate(tmpStr)); } } public static String translate(String testStr) { int commaNum = (testStr.length() - 1) / 3; for (int i = 0; i < commaNum; i++) { testStr = testStr.replaceAll("(//d{3},)*//d{3}$", ",$0"); } return testStr; } } 注: 将正则表达式中的//换回\\ 结果: 1: 1 11: 11 111: 111 1111: 1,111 11111: 11,111 111111: 111,111 1111111: 1,111,111 11111111: 11,111,111 111111111: 111,111,111 1111111111: 1,111,111,111 11111111111: 11,111,111,111 111111111111: 111,111,111,111 1111111111111: 1,111,111,111,111 11111111111111: 11,111,111,111,111 111111111111111: 111,111,111,111,111 1111111111111111: 1,111,111,111,111,111 11111111111111111: 11,111,111,111,111,111 111111111111111111: 111,111,111,111,111,111 1111111111111111111: 1,111,111,111,111,111,111 11111111111111111111: 11,111,111,111,111,111,111