public class UtilToolTest {
/**
* 中文数字
*/
private static final String[] CN_NUM = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};
/**
* 中文数字单位
*/
private static final String[] CN_UNIT = {"", "十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千"};
/**
* int 转 中文数字
* 支持到int最大值
*
* @param intNum 要转换的整型数
* @return 中文数字
*/
public static String int2chineseNum(int intNum) {
StringBuffer sb = new StringBuffer();
int count = 0;
while (intNum > 0) {
// sb的前面拼接CN_NUM[intNum % 10] + CN_UNIT[count]
sb.insert(0, CN_NUM[intNum % 10] + CN_UNIT[count]);
intNum = intNum / 10;
count++;
}
String str = sb.toString().replaceAll("零[千百十]", "零").replaceAll("零+万", "万")
.replaceAll("零+亿", "亿").replaceAll("亿万", "亿零")
.replaceAll("零+", "零").replaceAll("零$", "");
if (str.startsWith("一十")) {
str = str.substring(1);
}
return str;
}
}
public static void main(String[] args) {
System.out.println(UtilTool.int2chineseNum(1));
System.out.println(UtilTool.int2chineseNum(4));
System.out.println(UtilTool.int2chineseNum(9));
System.out.println(UtilTool.int2chineseNum(10));
System.out.println(UtilTool.int2chineseNum(11));
System.out.println(UtilTool.int2chineseNum(19));
System.out.println(UtilTool.int2chineseNum(20));
System.out.println(UtilTool.int2chineseNum(21));
System.out.println(UtilTool.int2chineseNum(22));
}
一
四
九
十
十一
十九
二十
二十一
二十二