将中文大写数字(从一到九十九)转换为阿拉伯数字
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;
}
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;
}
相关文章推荐
- 金额由阿拉伯数字转换成中文大写[修改版]
- 将阿拉伯数字转换成中文大写的好算法
- 如何把阿拉伯数字转换为中文大写?
- 一个将阿拉伯数字转换成中文大写的最简单算法
- C#实现的【阿拉伯数字转换成中文大写金额】代码(原创)
- 阿拉伯数字金额转换为中文大写之存储过程(更新版)
- 报表上金额由阿拉伯数字转换成中文大写
- JAVA编写 将阿拉伯数字转换成中文大写(不要Script的)
- C# 实现将阿拉伯数字转换成中文大写金额
- 将数字转换成对应的中文 将阿拉伯数字翻译成中文的大写数字
- 阿拉伯数字小写金额转换成中文大写金C额程序说明
- 阿拉伯数字转换成对应的大写中文输出
- 黑马程序员——金额转换,阿拉伯数字转换成中文大写
- 一个将阿拉伯数字转换成中文大写的算法[C#]
- C#阿拉伯数字金额转换为中文大写金额
- 将阿拉伯数字转换成中文大写人民币
- 报表上金额由阿拉伯数字转换成中文大写
- java 实验七 之 阿拉伯整数转换为中文大写数字(注意读法)
- 使用C#实现阿拉伯数字到大写中文的转换
- 一个将阿拉伯数字转换成中文大写的好算法(C#)