String num = "零壹贰叁肆伍陆柒捌玖"; String dw = "圆拾佰仟万亿"; String m = "30020.23"; String mm[] = null; mm = m.split("/."); String money = mm[0]; String result = num.charAt(Integer.parseInt("" + mm[1].charAt(0))) + "角" + num.charAt(Integer.parseInt("" + mm[1].charAt(1))) + "分"; for (int i = 0; i < money.length(); i++) ...{ String str = ""; int n = Integer.parseInt(money.substring(money.length() - i - 1, money.length() - i)); str = str + num.charAt(n); if (i == 0) ...{ str = str + dw.charAt(i); } else if ( (i + 4) % 8 == 0) ...{ str = str + dw.charAt(4); } else if (i % 8 == 0) ...{ str = str + dw.charAt(5); } else ...{ str = str + dw.charAt(i % 4); } result = str + result; } result = result.replaceAll("零([^亿万圆])", "零"); result = result.replaceAll("亿零+万","亿零"); result = result.replaceAll("零+", "零"); result = result.replaceAll("零([亿万圆])", "$1"); result =result.replaceAll("^壹拾","拾"); System.out.println(result);