人民币转换为大写

public static void main(String[] args) throws Exception{
        String[] hanarr={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
        String[] unitarr={"","十","百","千"};
        String[] unitarr2={"毛","分"};
        Scanner input=new Scanner(System.in);
        String num=input.nextLine();
        String[] nums=num.split("\\.");
        String output1=new String();
        int flag=0;
//先处理整数部分
        for(int i=0;i<nums[0].length();i++){
            int pernum=nums[0].charAt(i)-48;
            if(pernum==0){
                flag=1;//碰到0,标记flag为1,暂且什么都不做,如果直到数字末尾还是零,自然这个’零‘是不该加的;
            }else{
                if(flag==1){
                    output1 += hanarr[0];//前面为n个零,碰到非零数,这时可以加上’零‘了;
                }
                output1 += hanarr[pernum];
                output1 += unitarr[nums[0].length()-i-1];
                flag=0;
            }
        }
        output1+="元";
//小数部分处理
        flag=0;
        for(int i=0;i<2;i++){
            int pernum=nums[1].charAt(i)-48;
            if(pernum==0){
                flag=1;
            }else{
                if(flag==1){
                    output1 += hanarr[1];
                }
                output1 += hanarr[pernum];
                output1 += unitarr2[i];
                flag=0;
            }
        }
        System.out.println(output1);
    }


猜你喜欢

转载自blog.csdn.net/weixin_41338006/article/details/80857903