将中文大写数字(从一到九十九)转换为阿拉伯数字

输入中文大写数字(从一到九十九),返回阿拉伯数字

        
/// <summary>
        
/// 输入中文大写数字(从一到九十九),返回阿拉伯数字
        
/// </summary>
        
/// <param name="ChineseNumber">中文大写数字(从一到九十九)</param>
        
/// <returns></returns>

        public int ChineseNumberToArabicNumber(string ChineseNumber)
        
{
            
if(!System.Text.RegularExpressions.Regex.IsMatch(ChineseNumber,@"(^[一二三四五六七八九十]$)|(^十[一二三四五六七八九]$)|(^[二三四五六七八九]十[一二三四五六七八九]{0,1}$)"))
                
return 0;
            
int ArabicNumber=0;
            
string ReturnStr="";
            
string ChineseNumberName="一二三四五六七八九十";
            
int[] IntArrayArabicNumberNames=new int[]{1,2,3,4,5,6,7,8,9,10};
            
int length=ChineseNumber.Length;
            
switch(length)
            
{
                
case 1:
                    ArabicNumber
=IntArrayArabicNumberNames[ChineseNumberName.IndexOf(ChineseNumber)];
//                    return ArabicNumber;
                    break;
                
case 2:
                    
if(ChineseNumber[0]!='')
                    
{
                        ReturnStr
=IntArrayArabicNumberNames[ChineseNumberName.IndexOf(ChineseNumber[0])].ToString().Trim();
                        ReturnStr
+="0";
                        ArabicNumber
=Int16.Parse(ReturnStr);
//                        return ArabicNumber;
                    }

                    
else
                    
{
                        ReturnStr
="1";
                        ReturnStr
+=IntArrayArabicNumberNames[ChineseNumberName.IndexOf(ChineseNumber[1])].ToString().Trim();
                        ArabicNumber
=Int16.Parse(ReturnStr);
//                        return ArabicNumber;
                    }

                    
break;
                
case 3:
                    ReturnStr
=IntArrayArabicNumberNames[ChineseNumberName.IndexOf(ChineseNumber[0])].ToString().Trim();
                    ReturnStr
+=IntArrayArabicNumberNames[ChineseNumberName.IndexOf(ChineseNumber[2])].ToString().Trim();
                    ArabicNumber
=Int16.Parse(ReturnStr);
//                    return ArabicNumber;
                    break;
                
default:
                    
break;
            }

            
return ArabicNumber;
        }
posted @ 2006-04-17 16:05  半克拉鹅卵石  阅读(1660)  评论(0编辑  收藏  举报