public class Tohanzi { private static final String[] hanzi = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; private static String fourToHanZi(String digit) { int value = 0; int exponent = 0; boolean hasZero = false; StringBuffer chineseDigit = new StringBuffer(); float i = Float.parseFloat(digit); value = (int) i; for (exponent = 4; exponent >= 0; exponent--) { String[] unit = { "", "拾", "佰", "仟" }; int divisor = (int) Math.pow(10, exponent); int result = value / divisor; if (result != 0) { chineseDigit.append(hanzi[result]); chineseDigit.append(unit[exponent]); hasZero = false; } else if (result == 0 && !hasZero) { chineseDigit.append(hanzi[0]); hasZero = true; } else { } value = value % divisor; } if (chineseDigit.substring(0, 1).equals("零")) { return chineseDigit.deleteCharAt(0).toString(); } else { return chineseDigit.toString(); } } public static String fourToHanZiBig(String digit) { String[] unit = { "圆", "万", "亿" }; String chineseDigitWan = new String(); // 存储万位数字 String chineseDigitYi = new String(); // 存储亿位数字 StringBuffer chineseDigit = new StringBuffer(); if (digit.length() <= 5) { return fourToHanZi(digit); } else { if (digit.length() <= 8) { chineseDigitWan = digit.substring(0, digit.length() - 4); chineseDigit.append(fourToHanZi(chineseDigitWan) + unit[1] + fourToHanZi(digit.substring(digit.length() - 4, digit .length()))); } else { chineseDigitYi = digit.substring(0, digit.length() - 8); chineseDigit.append(fourToHanZi(chineseDigitYi) + unit[2] + fourToHanZi(digit.substring(digit.length() - 8, digit .length() - 4)) + unit[1] + fourToHanZi(digit.substring(digit.length() - 4, digit .length())) + unit[0]); } } return chineseDigit.toString(); } public static void main(String args[]) { System.out.println(fourToHanZiBig("23433330")); } }