posts - 14,  comments - 37,  trackbacks - 0

          采用了遞歸的方法

            1package src;
            2/** *//**
            3 * 
            4 * @author Mr.Yang
            6 */

            7public class Numeric {
            8
            9    /** *//**
           10     * @param args
           11     */

           12    public static void main(String[] args) {
           13        System.out.println(getChinese(2147483648l,0));
           14    }

           15    /** *//**
           16     * 獲得阿拉伯數字對應的中文
           17     * 最大只支持到9千9百九十九億9千9百九十九萬9千9百九十九
           18     * @param number 要轉換的數字
           19     * @param depth 遞歸深度,使用時候直接給0即可
           20     * @return 數字的中文描述
           21     */

           22    public static String getChinese(long number,int depth){
           23        if(depth<0)
           24            depth = 0;
           25        String chinese = "";
           26        String src = number+"";
           27        if(src.charAt(src.length()-1)=='l' || src.charAt(src.length()-1)=='L' )
           28        {
           29            src = src.substring(0, src.length()-1);
           30        }

           31        System.out.println(src);
           32        
           33        if(src.length()>4)
           34            chinese = getChinese(Integer.parseInt(src.substring(0, src.length()-4)),depth+1)+
           35                getChinese(Integer.parseInt(src.substring(src.length()-4, src.length())),depth-1);
           36        else{
           37            char prv = 0;
           38            for(int i=0;i<src.length();i++){
           39                switch(src.charAt(i)){
           40                case '0':
           41                    if(prv != '0')
           42                    chinese = chinese+"";
           43                    break;
           44                case '1':
           45                    chinese = chinese+"";
           46                    break;
           47                case '2':
           48                    chinese = chinese+"";
           49                    break;
           50                case '3':
           51                    chinese = chinese+"";
           52                    break;
           53                case '4':
           54                    chinese = chinese+"";
           55                    break;
           56                case '5':
           57                    chinese = chinese+"";
           58                    break;
           59                case '6':
           60                    chinese = chinese+"";
           61                    break;
           62                case '7':
           63                    chinese = chinese+"";
           64                    break;
           65                case '8':
           66                    chinese = chinese+"";
           67                    break;
           68                case '9':
           69                    chinese = chinese+"";
           70                    break;
           71                }

           72                prv = src.charAt(i);
           73                
           74                switch(src.length()-1-i){
           75                case 1://
           76                    if(prv != '0')
           77                    chinese = chinese + "";
           78                    break;
           79                case 2://
           80                    if(prv != '0')
           81                    chinese = chinese + "";
           82                    break;
           83                case 3://
           84                    if(prv != '0')
           85                    chinese = chinese + "";
           86                    break;
           87                
           88                }

           89            }

           90        }

           91        while(chinese.length()>0 && chinese.lastIndexOf("")==chinese.length()-1)
           92            chinese = chinese.substring(0,chinese.length()-1);
           93        if(depth == 1)
           94            chinese += "";
           95        if(depth == 2)
           96            chinese += "";
           97        
           98        return chinese;
           99    }

          100
          101}

          102
          posted on 2007-07-09 15:46 冰封的愛 閱讀(1107) 評論(1)  編輯  收藏 所屬分類: 常用工具

          FeedBack:
          # re: 阿拉伯數字轉換為中文大寫漢字
          2009-01-30 18:31 | 往往
          我是我  回復  更多評論
            
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 台州市| 根河市| 涪陵区| 拜泉县| 福泉市| 澄江县| 明溪县| 永新县| 大名县| 平潭县| 绥滨县| 无锡市| 钟祥市| 应用必备| 饶河县| 临颍县| 湖口县| 修武县| 玉林市| 修文县| 大悟县| 灌阳县| 临海市| 宁城县| 夏河县| 梁山县| 翁牛特旗| 卓尼县| 濮阳市| 巴彦淖尔市| 闽侯县| 麦盖提县| 策勒县| 肇庆市| 松桃| 安吉县| 阳春市| 龙州县| 泽普县| 基隆市| 漳州市|