2011-08-30 18:28 85人阅读 评论(0) 收藏 举报
string测试c
代码从csdn复制,未做测试
view sourceprint?
public static class ChineseNumberUtil
{
/// <summary>
/// 将中文数字转换成阿拉伯数字
/// </summary>
/// <param name="cnNumber"></param>
/// <returns></returns>
static int ConverToDigit(string cnNumber)
{
int result = 0;
int temp = 0;
foreach (char c in cnNumber)
{
int temp1 = ToDigit(c);
if (temp1 == 10000)
{
result += temp;
result *= 10000;
temp = 0;
}
else if (temp1 > 9)
{
if (temp1 == 10 && temp == 0) temp = 1;
result += temp * temp1;
temp = 0;
}
else temp = temp1;
}
result += temp;
return result;
}
/// <summary>
/// 将中文数字转换成阿拉伯数字
/// </summary>
/// <param name="cn"></param>
/// <returns></returns>
static int ToDigit(char cn)
{
int number = 0;
switch (cn)
{
case '壹':
case '一':
number = 1;
break;
case '两':
case '贰':
case '二':
number = 2;
break;
case '叁':
case '三':
number = 3;
break;
case '肆':
case '四':
number = 4;
break;
case '伍':
case '五':
number = 5;
break;
case '陆':
case '六':
number = 6;
break;
case '柒':
case '七':
number = 7;
break;
case '捌':
case '八':
number = 8;
break;
case '玖':
case '九':
number = 9;
break;
case '拾':
case '十':
number = 10;
break;
case '佰':
case '百':
number = 100;
break;
case '仟':
case '千':
number = 1000;
break;
case '萬':
case '万':
number = 10000;
break;
case '零':
default:
number = 0;
break;
}
return number;
}
/// <summary>
/// 将中文数字转换成阿拉伯数字
/// </summary>
/// <param name="cnDigit"></param>
/// <returns></returns>
static long ToLong(string cnDigit)
{
long result = 0;
string[] str = cnDigit.Split('亿');
result = ConverToDigit(str[0]);
if (str.Length > 1)
{
result *= 100000000;
result += ConverToDigit(str[1]);
}
return result;
}
}