private static String[] numArray = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};
private static String[] unitArray = {"十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千"};
/**
* 阿拉伯数字转中文,包含单位 1234:一千二百三十四 10:十
*
* @param val 需要转换的数字
* @return {@link String}
* @author: chenQingHui
* @Date 2023/7/10 下午 04:37
**/
private static String toChineseIncludeUnit(Integer val) {
if (val == null || 0 == val) {
return "";
}
StringBuffer sb = new StringBuffer();
char[] numChar = String.valueOf(val).toCharArray();
int size = numChar.length;
for (int i = 0; i < size; i++) {
int num = Integer.parseInt(String.valueOf(numChar[i]));
if (i != 0) {
sb.append(unitArray[size - i - 1] + numArray[num]);
} else {
sb.append(numArray[num]);
}
}
String string = sb.toString();
if (StringUtils.startsWith(sb.toString(), "一十")) {
string = string.substring(1);
}
return string.replaceAll("零[千百十]", "零")
.replaceAll("零+万", "万")
.replaceAll("零+亿", "亿").replaceAll("亿万", "亿零")
.replaceAll("零+", "零").replaceAll("零$", "");
}
阿拉伯数字转中文
最新推荐文章于 2024-06-13 08:37:22 发布