<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 7  文章 - 3  trackbacks - 0
    <2011年12月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    /**
     * 數字轉換為大寫人民幣計數
     * @author 王代軍
     * @since Dec 16,2011
     */

    public class Num2Rmb
    {
        private String[] hanArr = {"零" , "壹" , "貳" , "叁" , "肆" ,
            "伍" , "陸" , "柒" , "捌" , "玖"};
        private String[] unitArr = {"拾","百","千","萬"};

        /**
         * 把一個四位的數字字符串變成漢字字符串
         * @param numStr 需要被轉換的四位的數字字符串
         * @return 四位的數字字符串被轉換成的漢字字符串。
         */
        private String toHanStr(String numStr)
        {
            String result = "";
            int numLen = numStr.length();
            //依次遍歷數字字符串的每一位數字
            for (int i = 0 ; i < numLen ; i++ )
            {
                //把char型數字轉換成的int型數字,因為它們的ASCII碼值恰好相差48
                //因此把char型數字減去48得到int型數字,例如'4'被轉換成4。
                int num = numStr.charAt(i) - 48;
                //如果不是最后一位數字,而且數字不是零,則需要添加單位(千、百、十)
                if ( i != numLen - 1 && num != 0)
                {
                    result += hanArr[num] + unitArr[numLen - 2 - i];
                }
                //否則不要添加單位
                else
                {
                    
                    //上一個數是否為“零”,不為“零”時就添加
                    if(result.length()>0 && hanArr[num].equals("零") && result.charAt(result.length()-1)=='零')
                        continue;
                    result += hanArr[num];
                }
            }
            //只有個位數,直接返回
            if(result.length()==1)
                return result;
            
            int index=result.length()-1;
            while(result.charAt(index)=='零'){
                index--;
            }
            if(index!=result.length()-1)
                return result.substring(0,index+1);
            else {
                return result;
            }
        }
        /**
         * 把一個輸入的數字字符串變成漢字字符串
         * @param numStr 需要被轉換得到數字字符串
         * @return 數字字符串被轉換成的漢字RMB字符串。
         */
        private String toRmbStr(String numStr){
            //獲取字符串長度
            int numLen = numStr.length();
            //判斷長度小于4(一萬以內~0-9999) 調用toHanStr();
            if(numLen<=4){
                return toHanStr(numStr);
            }
            //4<長度<=8 (一億以內 1000-99999999)
            else if(numLen>4&&numLen<=8){
                String[] subArr={numStr.substring(0, numLen-4),numStr.substring(numLen-4, numLen)};
                return toHanStr(subArr[0])+"萬"+toHanStr(subArr[1]);
            }
            //8<長度<=10 (百億以內 一億-9999999999)
            else if(numLen>8&&numLen<=10){
                String[] subArr={numStr.substring(0,numLen-8),numStr.substring(numLen-8,numLen-4),numStr.substring(numLen-4,numLen)};
                return toHanStr(subArr[0])+"億"+toHanStr(subArr[1])+"萬"+toHanStr(subArr[2]);
            }
            else return "輸入有誤!";    
        }          
        public static void main(String[] args)
        {        
            Num2Rmb nr = new Num2Rmb();
            System.out.println("只支持整數(0~99億)");
            //測試把一個四位的數字字符串變成漢字字符串
            System.out.println(nr.toRmbStr("1"));
            System.out.println(nr.toRmbStr("10"));
            System.out.println(nr.toRmbStr("15"));
            System.out.println(nr.toRmbStr("110"));
            System.out.println(nr.toRmbStr("123"));
            System.out.println(nr.toRmbStr("105"));
            System.out.println(nr.toRmbStr("1000"));
            System.out.println(nr.toRmbStr("1101"));
            System.out.println(nr.toRmbStr("1110"));
            System.out.println(nr.toRmbStr("1005"));
            System.out.println(nr.toRmbStr("101105"));
            System.out.println(nr.toRmbStr("1011109"));
            System.out.println(nr.toRmbStr("9999999999"));
        }
    }

    posted on 2011-12-26 13:26 Tomas 閱讀(564) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久久久久免费一区二区三区 | 免费无码又爽又刺激一高潮| 成人免费午夜无码视频| 亚洲一区二区三区在线观看网站| 99在线免费观看视频| 国产人成亚洲第一网站在线播放| 又黄又爽又成人免费视频| 久久亚洲精精品中文字幕| 成人免费午夜视频| 两性色午夜免费视频| 亚洲精品二三区伊人久久| 亚洲免费电影网站| yellow视频免费在线观看| 亚洲福利一区二区精品秒拍| 免费在线观看污网站| 午夜亚洲乱码伦小说区69堂| 亚洲av无码成h人动漫无遮挡 | 国产亚洲成归v人片在线观看 | 日韩成人免费aa在线看| 免费国产成人α片| 1区1区3区4区产品亚洲| 毛片无码免费无码播放| 亚洲国产日韩在线| 亚洲中文久久精品无码| 四虎成人免费影院网址| 日韩精品无码专区免费播放| 午夜成人无码福利免费视频| 亚洲最大的黄色网| 免费a在线观看播放| 国产精品免费精品自在线观看| 国产成人精品日本亚洲11| 国产亚洲一区二区手机在线观看 | 成人毛片18女人毛片免费视频未| 亚洲国产高清国产拍精品| 亚洲av片劲爆在线观看| 亚洲成a人无码av波多野按摩| 97在线免费观看视频| 麻豆va在线精品免费播放| 亚洲AV成人影视在线观看| 亚洲资源在线视频| 亚洲国语精品自产拍在线观看|