您的位置:首页 > 其它

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

2006-04-17 16:05 901 查看
输入中文大写数字(从一到九十九),返回阿拉伯数字

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: