前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >把数字转换成人民币大写的形式Java类

把数字转换成人民币大写的形式Java类

原创
作者头像
用户7999227
修改2021-09-22 10:41:00
3910
修改2021-09-22 10:41:00
举报
文章被收录于专栏:Java小王子Java小王子
代码语言:javascript
复制
/**

@author sunpander

把输入的数字转换成人民币大写的形式 
*/


import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ChangeNumToRMB {

String moneyStrs[] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };

public static void main(String[] args) {
    // TODO Auto-generated method stub
    boolean isDebug = true;
    while (isDebug) {
        int num = 0;
        String changedStr = "";
        System.out.println("请输入需要转换的金额:");
        BufferedReader br = new BufferedReader(new InputStreamReader(
                System.in));
        boolean isWrongInput = true;
        while (isWrongInput) {
            try {
                String str = br.readLine();

                num = Integer.parseInt(str);

            } catch (Exception e) {
                System.out.println("输入数字有误,必须是:0" + "到" + Integer.MAX_VALUE
                        + " 的整数");

                // TODO Auto-generated catch block
                // e.printStackTrace();
                isWrongInput = true;
                continue;
            }
            isWrongInput = false;
        }
        ChangeNumToRMB chan = new ChangeNumToRMB();
        changedStr = chan.getChangedString(num);
    }
}

public String getChangedString(int num) {

    // Money用于存放输入的金额数
    int moneyNum = num;
    String moneyStr = "";
    System.out.println("输入的钱数是:");
    if (moneyNum < 0) {
        System.out.println("数字必须大于零");
    } else if (moneyNum == 0) {
        moneyStr = "零元";
    }
    // 只有四位数,即最大9999.小于10000
    else if (moneyNum < 10000) {
        moneyStr = this.getFourNumStr(moneyNum) + "元";
    }
    // 大于一万,小于一千万
    else if (moneyNum <= 10000000)// && moneyNum>10000)
    {

        int firstFourNum, lastFourNum;
        firstFourNum = moneyNum / 10000;
        lastFourNum = moneyNum % 10000;
        String firstFourStr = this.getFourNumStr(firstFourNum);
        String lastFourStr = this.getFourNumStr(lastFourNum);
        if (!lastFourStr.contains("仟"))
            lastFourStr = "零" + lastFourStr;
        moneyStr = firstFourStr + "万" + lastFourStr + "元";
    }
    // 大于一千万.即上亿但小于最大整数
    else if (moneyNum < Integer.MAX_VALUE)// && moneyNum>10000000)
    {
        int firstFourNum, secondFourNum, lastFourNum;
        firstFourNum = moneyNum / 100000000;
        secondFourNum = (moneyNum / 10000) % 1000;
        lastFourNum = moneyNum % 10000;
        String firstFourStr = this.getFourNumStr(firstFourNum);
        String secondFourStr = this.getFourNumStr(secondFourNum);
        String lastFourStr = this.getFourNumStr(lastFourNum);
        if (!lastFourStr.contains("仟"))
            lastFourStr = "零" + lastFourStr;
        if (!secondFourStr.contains("仟"))
            secondFourStr = "零" + secondFourStr;
        moneyStr = firstFourStr + "亿" + secondFourStr + "万" + lastFourStr
                + "元";
    } else
        System.out.println("someting    is wrong");
    System.out.println(moneyStr);
    return moneyStr;
}

public String getFourNumStr(int fourNum) {
    int qian, bai, shi, ge;
    ge = fourNum % 10;
    shi = (fourNum % 100) / 10;
    bai = (fourNum % 1000) / 100;
    qian = fourNum / 1000;
    String strTemp = "";
    if (qian != 0) {

        strTemp = strTemp.concat(moneyStrs[qian] + "仟");
        strTemp = strTemp.concat(moneyStrs[bai] + "佰");
        strTemp = strTemp.concat(moneyStrs[shi] + "什");
        strTemp = strTemp.concat(moneyStrs[ge]);

        strTemp = strTemp.replace("零佰", "零");
        strTemp = strTemp.replace("零什", "零");
        strTemp = strTemp.replace("零零", "零");
        strTemp = strTemp.replace("零零", "零");

        if (strTemp.endsWith("零"))
            strTemp = strTemp.substring(0, strTemp.length() - 1);
    } else if (bai != 0) {
        strTemp = strTemp.concat(moneyStrs[bai] + "佰");
        strTemp = strTemp.concat(moneyStrs[shi] + "什");
        strTemp = strTemp.concat(moneyStrs[ge]);

        strTemp = strTemp.replace("零什", "零");
        strTemp = strTemp.replace("零零", "零");

        if (strTemp.endsWith("零"))
            strTemp = strTemp.substring(0, strTemp.length() - 1);
    } else if (shi != 0) {

        strTemp = strTemp.concat(moneyStrs[shi] + "什");
        strTemp = strTemp.concat(moneyStrs[ge]);

        if (strTemp.endsWith("零"))
            strTemp = strTemp.substring(0, strTemp.length() - 1);
    } else
        strTemp.concat(moneyStrs[ge]);
    return strTemp;
}

}</pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档