<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 閱讀(566) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 老司机精品视频免费| 在线观看亚洲AV日韩A∨| 色婷婷综合缴情综免费观看| 猫咪社区免费资源在线观看| 亚洲精品午夜视频| 久久免费的精品国产V∧| 亚洲国产精品自在在线观看| 男人都懂www深夜免费网站| 亚洲av无码国产精品色午夜字幕 | 亚洲日产乱码一二三区别 | 亚洲网址在线观看| 最近中文字幕无免费| 亚洲国产高清在线精品一区 | 国产精品观看在线亚洲人成网| 在线观着免费观看国产黄| 亚洲AV无码成人精品区日韩 | 国产亚洲欧美日韩亚洲中文色| 日韩精品视频免费网址| 男男gvh肉在线观看免费| 亚洲色偷拍区另类无码专区| 国产日韩AV免费无码一区二区三区| 国产gv天堂亚洲国产gv刚刚碰| a级毛片黄免费a级毛片| 麻豆亚洲AV永久无码精品久久| 国产精品1024永久免费视频| 亚洲宅男精品一区在线观看| 精品国产免费观看一区| 理论秋霞在线看免费| 国产亚洲精AA在线观看SEE| 日本在线免费观看| 亚洲乱码中文字幕小综合| 精品无码国产污污污免费| 免费无码国产V片在线观看| 亚洲AV无码专区国产乱码电影| 3344免费播放观看视频| 亚洲AV无码一区二区三区久久精品| 亚洲日韩VA无码中文字幕| 99视频在线免费看| 亚洲综合av一区二区三区| 久久久青草青青国产亚洲免观 | 亚洲国产精品综合久久2007|