数字转换为汉字

存在一些問題
不太完善
比如輸入100出現一百零十零
  1 ExpandedBlockStart.gif ContractedBlock.gif   /**/ /// <summary>
  2       /// 返回數字(暫時只支持3位數以内)
  3       /// </summary>
  4       /// <param name="num"></param>
  5       /// <returns></returns>

  6         public   string  CastToChineseNumber( string  num)
  7 ExpandedBlockStart.gifContractedBlock.gif        {
  8           string CNum = num;//設置將要返回的數字等於輸入的數字
  9           if (CheckNum(CNum))
 10ExpandedSubBlockStart.gifContractedSubBlock.gif           {
 11               switch (num.Length)
 12ExpandedSubBlockStart.gifContractedSubBlock.gif               {
 13                   case 0://如果沒有輸入數字
 14                       CNum = "N/A"//未知
 15                       break;
 16                   case 1://如果是1位的數字
 17                       CNum = GetCNum(num);
 18                       break;
 19                   case 2://2位的數字
 20                       if (num.Substring(1== "0" )//處理 10,20,3090這類數字
 21ExpandedSubBlockStart.gifContractedSubBlock.gif                       {
 22                           if (num.Substring(01== "1")
 23ExpandedSubBlockStart.gifContractedSubBlock.gif                           {
 24                               CNum = "";
 25                           }

 26                           else
 27ExpandedSubBlockStart.gifContractedSubBlock.gif                           {
 28                               CNum = GetCNum(num.Substring(01)) + "";
 29                           }

 30                       }

 31                       else if(num.Substring(0,1)=="1")//處理11轉換為 十一  而不是一十一
 32ExpandedSubBlockStart.gifContractedSubBlock.gif                       {
 33                           CNum = "" + GetCNum(num.Substring(1));
 34                       }

 35                       else
 36ExpandedSubBlockStart.gifContractedSubBlock.gif                       {
 37                           CNum = GetCNum(num.Substring(01)) + "" + GetCNum(num.Substring(1));
 38                       }

 39                       break;
 40                   case 3://如果是3位的數字
 41                       string aa=num.Substring(1,1);
 42                       CNum = GetCNum(num.Substring(01)) + "" + GetCNum(num.Substring(1,1)) + "" + GetCNum(num.Substring(2)); break;
 43                   defaultbreak;
 44               }

 45           }

 46           return CNum;            
 47
 48       }

 49 ExpandedBlockStart.gifContractedBlock.gif        /**/ /// <summary>
 50       /// 檢查是否是數字
 51       /// </summary>
 52       /// <param name="num"></param>
 53       /// <returns></returns>

 54         public   bool  CheckNum( string  num)       
 55 ExpandedBlockStart.gifContractedBlock.gif        {          
 56           string Num = "0123456789";
 57           char  [] nums = num.ToCharArray();           
 58           bool isNum=false;
 59           foreach (char n in nums)
 60ExpandedSubBlockStart.gifContractedSubBlock.gif           {
 61               if (Num.Contains(n.ToString()))
 62ExpandedSubBlockStart.gifContractedSubBlock.gif               {
 63                   isNum = true;
 64               }

 65               else
 66ExpandedSubBlockStart.gifContractedSubBlock.gif               {
 67                   isNum = false;
 68                   break;
 69               }

 70           }

 71           return isNum;
 72       }

 73 ExpandedBlockStart.gifContractedBlock.gif        /**/ /// <summary>
 74       /// 獲取單個數字對應的漢字
 75       /// </summary>
 76       /// <param name="num"></param>
 77       /// <returns></returns>

 78         public   string  GetCNum( string  num)
 79 ExpandedBlockStart.gifContractedBlock.gif        {
 80           string Cnum = "";
 81           switch (int.Parse(num))
 82ExpandedSubBlockStart.gifContractedSubBlock.gif           {
 83               case 0:
 84                   Cnum = ""break;
 85               case 1:
 86                   Cnum = ""break;
 87               case 2:
 88                   Cnum = ""break;
 89               case 3:
 90                   Cnum = ""break;
 91               case 4:
 92                   Cnum = ""break;
 93               case 5:
 94                   Cnum = ""break;
 95               case 6:
 96                   Cnum = ""break;
 97               case 7:
 98                   Cnum = ""break;
 99               case 8:
100                   Cnum = ""break;
101               case 9:
102                   Cnum = ""break;
103           }

104           return Cnum;
105       }

转载于:https://www.cnblogs.com/buzaixian/archive/2009/09/17/1568372.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值