通过Java代码实现将数字金额转为中文金额格式

142 阅读1分钟

演示:

image.png

代码实现:

import java.util.Scanner;


public class MoneyConversion {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int money;
        while (true) {
            System.out.println("请输入金额:");
            money = scanner.nextInt();
            if(money>=0&&money<=9999999){
                break;
            }else{
                System.out.println("输入的金额无效!");
            }
        }
            //定义一个数字转换过来的字符
        String moneyStr="";
        while (true){
            int ge = money%10;
            String capitalNumber = conversion(ge);
            //把转换后的数据进行一个拼接
            moneyStr=capitalNumber + moneyStr;
            //去除添加过的数据
            money=money/10;
            if(money==0){
                break;
            }
        }
        //3.在前面补全零,补齐7位
        int count = 7 -moneyStr.length();
        for (int i = 0; i < count; i++) {
            moneyStr="零"+moneyStr;
        }
        //4.插入单位
        //定义一个数组表示单位
        String[]  arr ={"佰","拾","万","仟","佰","拾","元"};
        //遍历moneyStr 然后把arrd 单位插入进去
        String result = "";
        for (int i = 0; i < moneyStr.length(); i++) {
            char c = moneyStr.charAt(i);
            //把大写数组和单位拼接在一起到result当中
            result=result+c+arr[i];
        }
        //5.最终打印结果
        System.out.println(result);
    }

    //1.把数字进行转换
    public static String conversion(int number){
        String[] arr ={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
        return arr[number];
    }
}