免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
人民幣大小寫轉(zhuǎn)換(自己寫了個,結(jié)果發(fā)現(xiàn)有點(diǎn)問題,然后找了個比較強(qiáng)力的)

import java.text.NumberFormat;  

import java.util.HashMap;  

import java.util.Scanner;  

public class AmountOfConversion {  

    //定義HashMap的value值  

    public static final String EMPTY = "";  

    public static final String ZERO = "零";  

    public static final String ONE = "壹";  

    public static final String TWO = "貳";  

    public static final String THREE = "叁";  

    public static final String FOUR = "肆";  

    public static final String FIVE = "伍";  

    public static final String SIX = "陸";  

    public static final String SEVEN = "柒";  

    public static final String EIGHT = "捌";  

    public static final String NINE = "玖";  

    public static final String TEN = "拾";  

    public static final String HUNDRED = "佰";  

    public static final String THOUSAND = "仟";  

    public static final String TEN_THOUSAND = "萬";  

    public static final String HUNDRED_MILLION = "億";  

    public static final String YUAN = "元";  

    public static final String JIAO = "角";  

    public static final String FEN = "分";  

    public static final String DOT = ".";  

    private static AmountOfConversion formatter = null

//創(chuàng)建AmountOfConversion的實(shí)例對象  

     //創(chuàng)建初始化一個HashMap對象  

    private HashMap NumberMap = new HashMap();  

    private HashMap HighnumberofMoney = new HashMap();  

   //創(chuàng)建初始化一個NumberFormat對象  

    private NumberFormat numberFormat = 
NumberFormat.getInstance();  

    private AmountOfConversion() {    

              //在用new創(chuàng)建AmountOfConversion對象時(shí),
為HashMap對象進(jìn)行key-value的映射 
 

        numberFormat.setMaximumFractionDigits(4); 
//設(shè)置數(shù)據(jù)的小數(shù)部分的最大位數(shù)是4位  

        numberFormat.setMinimumFractionDigits(2); 
//設(shè)置數(shù)據(jù)的小數(shù)部分的最小位數(shù)是2位  

        numberFormat.setGroupingUsed(false);    
/*設(shè)置此格式中是不可以使用組。如果設(shè)置可以使用組,
則數(shù) 1234567 可能被格式化為 "1,234,567"*/
 

        NumberMap.put("0", ZERO);  

        NumberMap.put("1", ONE);  

        NumberMap.put("2", TWO);  

        NumberMap.put("3", THREE);  

        NumberMap.put("4", FOUR);  

        NumberMap.put("5", FIVE);  

        NumberMap.put("6", SIX);  

        NumberMap.put("7", SEVEN);  

        NumberMap.put("8", EIGHT);  

        NumberMap.put("9", NINE);  

        NumberMap.put(DOT, DOT);  

        HighnumberofMoney.put("1", TEN);  

        HighnumberofMoney.put("2", HUNDRED);  

        HighnumberofMoney.put("3", THOUSAND);  

        HighnumberofMoney.put("4", TEN_THOUSAND);  

        HighnumberofMoney.put("5", TEN);  

        HighnumberofMoney.put("6", HUNDRED);  

        HighnumberofMoney.put("7", THOUSAND);  

        HighnumberofMoney.put("8", HUNDRED_MILLION);  

    }  

    public static AmountOfConversion getInstance() { 

//判斷AmountOfConversion對象formatter是否初始化  

        if (formatter == null)  

            formatter = new AmountOfConversion();  

        return formatter;  

    }  

    //進(jìn)行金額轉(zhuǎn)換的多種數(shù)據(jù)類型  

    public String format(String moneyStr) {  

        String result = "不能進(jìn)行金額轉(zhuǎn)換!!";  

        if(isConversion(moneyStr)){  

            result = convertIntegerTochinese(moneyStr);  

            result = convertPointTochinese(result);  

        }  

        return result;  

    }  

    public String format(double moneyDouble) {  

        return format(numberFormat.format(moneyDouble));  

    }  

    public String format(int moneyInt) {  

        return format(numberFormat.format(moneyInt));  

    }  

    public String format(long moneyLong) {  

        return format(numberFormat.format(moneyLong));  

    }  

    public String format(Number moneyNum) {  

        return format(numberFormat.format(moneyNum));  

    }  

    private String convertIntegerTochinese(String moneyStr) { 

//將參數(shù)中傳入的阿拉伯?dāng)?shù)字轉(zhuǎn)換成中文  

        String result;  

        StringBuffer C2CStrBufer = new StringBuffer();  

        for (int i = 0; i < moneyStr.length(); i++) {  

            C2CStrBufer.append(NumberMap.get(moneyStr.substring(  

                    i, i + 1)));  

        }  

        // 拾佰仟萬億等都是漢字里面才有的單位,加上它們  

        int indexOfDot = C2CStrBufer.indexOf(DOT);  

        int moneyPatternCursor = 1;  

        for (int i = indexOfDot - 1; i > 0; i--) {  

            C2CStrBufer.insert(i, HighnumberofMoney.get(EMPTY  

                    + moneyPatternCursor));  

            moneyPatternCursor = moneyPatternCursor == 8 ? 1 

                    : moneyPatternCursor + 1;  

        }  

        String fractionPart = C2CStrBufer.substring(C2CStrBufer  

                .indexOf("."));  

        C2CStrBufer.delete(C2CStrBufer.indexOf("."),  

                C2CStrBufer.length());  

        while (C2CStrBufer.indexOf("零拾") != -1) {  

            C2CStrBufer.replace(C2CStrBufer.indexOf("零拾"),  

                    C2CStrBufer.indexOf("零拾") + 2, ZERO);  

        }  

        while (C2CStrBufer.indexOf("零佰") != -1) {  

            C2CStrBufer.replace(C2CStrBufer.indexOf("零佰"),  

                    C2CStrBufer.indexOf("零佰") + 2, ZERO);  

        }  

        while (C2CStrBufer.indexOf("零仟") != -1) {  

            C2CStrBufer.replace(C2CStrBufer.indexOf("零仟"),  

                    C2CStrBufer.indexOf("零仟") + 2, ZERO);  

        }  

        while (C2CStrBufer.indexOf("零萬") != -1) {  

            C2CStrBufer.replace(C2CStrBufer.indexOf("零萬"),  

                    C2CStrBufer.indexOf("零萬") + 2, TEN_THOUSAND);  

        }  

        while (C2CStrBufer.indexOf("零億") != -1) {  

            C2CStrBufer.replace(C2CStrBufer.indexOf("零億"),  

                    C2CStrBufer.indexOf("零億") + 2, HUNDRED_MILLION);  

        }  

        while (C2CStrBufer.indexOf("零零") != -1) {  

            C2CStrBufer.replace(C2CStrBufer.indexOf("零零"),  

                    C2CStrBufer.indexOf("零零") + 2, ZERO);  

        }  

        if (C2CStrBufer.lastIndexOf(ZERO) == C2CStrBufer.length() - 1)  

            C2CStrBufer.delete(C2CStrBufer.length() - 1,  

                    C2CStrBufer.length());  

        C2CStrBufer.append(fractionPart);  

        result = C2CStrBufer.toString();  

        return result;  

    }  

    private String convertPointTochinese(String moneyStr) {  

//對小數(shù)點(diǎn)后面的數(shù)字進(jìn)行漢字處理  

        String result;  

        StringBuffer C2CStrBufer = new StringBuffer(moneyStr);  

        int indexOfDot = C2CStrBufer.indexOf(DOT);  

        C2CStrBufer.replace(indexOfDot, indexOfDot + 1, YUAN);  

        C2CStrBufer.insert(C2CStrBufer.length() - 1, JIAO);  

        C2CStrBufer.insert(C2CStrBufer.length(), FEN);  

        if (C2CStrBufer.indexOf("零角零分") != -1)// 沒有零頭,加整  

            C2CStrBufer.replace(C2CStrBufer.indexOf("零角零分"),  

                    C2CStrBufer.length(), "整");  

        else if (C2CStrBufer.indexOf("零分") != -1)// 沒有零分,加整  

            C2CStrBufer.replace(C2CStrBufer.indexOf("零分"),  

                    C2CStrBufer.length(), "整");  

        else {  

            if (C2CStrBufer.indexOf("零角") != -1)  

                C2CStrBufer.delete(C2CStrBufer.indexOf("零角"),  

                        C2CStrBufer.indexOf("零角") + 2);  

        }  

        result = C2CStrBufer.toString();  

        return result;  

    }  

    private boolean isConversion(String moneyStr) {  

//判斷參數(shù)傳來的數(shù)據(jù)是否符合進(jìn)行轉(zhuǎn)換的條件  

        int fractionDigits = moneyStr.length() - 
moneyStr.indexOf(DOT) - 1;  

        boolean flag = true;  

        if (fractionDigits > 2){  

            System.out.println("金額" + moneyStr + "
的小數(shù)位多于兩位。"
);                                  
// 精度不能比分低  

            flag = false;  

        }  

        return flag;  

              

    }  

    public static void main(String args[]) {  

        System.out.println("請輸入金額數(shù):");  

        Scanner scanner = new Scanner(System.in);  

        String str = scanner.next();  

        System.out.println("轉(zhuǎn)換后的金額為:");  

        System.out.println(getInstance().format(new Double(str)));  

    }  

}

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
java筆試題大匯總(三)
數(shù)據(jù)格式化
java.text.DecimalFormat()格式化輸出數(shù)字
Java 格式化輸出數(shù)字
Java:對double值進(jìn)行四舍五入,保留兩位小數(shù)的幾種方法
將輸入的字符串逆向輸出
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服