public class AmountToChinese {
// 定义中文大写数字字符数组
private static final String[] CN_UPPER_NUMBER = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
// 定义中文大写单位字符数组
private static final String[] CN_UPPER_MONETARY_UNIT = {"分", "角", "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "兆", "拾", "佰", "仟"};
public static String number2CNMonetaryUpper(int num) {
StringBuilder sb = new StringBuilder();
int unitPos = 0;
boolean isZero = false;
while (num > 0) {
int mod = num % 10;
if (mod == 0) {
if (!isZero) {
sb.insert(0, CN_UPPER_NUMBER[mod]);
isZero = true;
}
} else {
isZero = false;
String cnNum = CN_UPPER_NUMBER[mod];
String cnUnit = CN_UPPER_MONETARY_UNIT[unitPos];
sb.insert(0, cnNum + cnUnit);
}
num /= 10;
unitPos++;
}
return sb.toString().replaceAll("元零角零分$", "元整").replaceAll("零([拾佰仟])", "$1").replaceAll("零+万", "万").replaceAll("零+亿", "亿").replaceAll("零+", "零").replaceAll("^一拾", "十");
}
public static void main(String[] args) {
System.out.println(number2CNMonetaryUpper(123456789));
}
}
对于输入 123456789,输出结果为 壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾元整。
下一篇:java中switch用法
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站