将包含在语境中的汉语数字转换为阿拉伯数字
来源:互联网 发布:培训机构营销数据分析 编辑:程序博客网 时间:2024/06/16 18:51
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;
}
static int ToDigit(char cn)
{
int number = 0;
switch (cn)
{
case '零': number = 0; break;
case '一': number = 1; break;
case '二': number = 2; break;
case '三': number = 3; break;
case '四': number = 4; break;
case '五': number = 5; break;
case '六': number = 6; break;
case '七': number = 7; break;
case '八': number = 8; break;
case '九': number = 9; break;
case '十': number = 10; break;
case '百': number = 100; break;
case '千': number = 1000; break;
case '万': number = 10000; break;
}
return number;
}
static long ToLong(string cnDigit)
{
long result = 0;
string[] str = cnDigit.Split('亿');
if (str.Length == 1) result = ConverToDigit(str[0]);
else result = (long)ConverToDigit(str[0]) * 100000000 + ConverToDigit(str[1]);
return result;
}
/// <summary>
/// 将中文数字替换为阿拉伯数字(调用方法)
/// </summary>
/// <param name="word"></param>
/// <returns></returns>
public static string WordToNumber(string word)
{
string result = word;
string e = "([零一二三四五六七八九十百千万亿])+";
MatchCollection mc = Regex.Matches(word, e);
foreach(Match m in mc)
{
result = result.Replace(m.Value, ToLong(m.Value).ToString());
}
return result;
}
{
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;
}
static int ToDigit(char cn)
{
int number = 0;
switch (cn)
{
case '零': number = 0; break;
case '一': number = 1; break;
case '二': number = 2; break;
case '三': number = 3; break;
case '四': number = 4; break;
case '五': number = 5; break;
case '六': number = 6; break;
case '七': number = 7; break;
case '八': number = 8; break;
case '九': number = 9; break;
case '十': number = 10; break;
case '百': number = 100; break;
case '千': number = 1000; break;
case '万': number = 10000; break;
}
return number;
}
static long ToLong(string cnDigit)
{
long result = 0;
string[] str = cnDigit.Split('亿');
if (str.Length == 1) result = ConverToDigit(str[0]);
else result = (long)ConverToDigit(str[0]) * 100000000 + ConverToDigit(str[1]);
return result;
}
/// <summary>
/// 将中文数字替换为阿拉伯数字(调用方法)
/// </summary>
/// <param name="word"></param>
/// <returns></returns>
public static string WordToNumber(string word)
{
string result = word;
string e = "([零一二三四五六七八九十百千万亿])+";
MatchCollection mc = Regex.Matches(word, e);
foreach(Match m in mc)
{
result = result.Replace(m.Value, ToLong(m.Value).ToString());
}
return result;
}
- 将包含在语境中的汉语数字转换为阿拉伯数字
- 如何将汉语数字转换成阿拉伯数字!
- OC 将汉语数字转换成阿拉伯数字
- 阿拉伯数字转换成汉语数字
- 阿拉伯数字转换为汉语表达方式
- 将阿拉伯数字转换为汉字数字
- 将阿拉伯数字转换为中文数字
- java将阿拉伯数字转换为中文数字
- java将阿拉伯数字转换为中文数字
- IOS,将阿拉伯数字转换为中文数字
- 将数字转换为汉语简体中文
- 将人民币中的阿拉伯数字转换为大写
- 阿拉伯数字金额转换为汉语大写
- C语言 阿拉伯数字转换为汉语大写数字金额程序分析及源码
- 将大写数字的日期转换为阿拉伯数字的方法
- 【iOS开发系列】将阿拉伯数字转换为中文数字
- delphi下将中文数字转换为阿拉伯数字
- 将字符串中的中文数字转换成阿拉伯数字
- 王垠:如何掌握程序语言
- pl sql developer 创建job
- c# 操作excel类
- Linux设备模型之input子系统详解
- CSDN博客第一期移动开发排行榜
- 将包含在语境中的汉语数字转换为阿拉伯数字
- MSP430 中ADC12用法
- VB.Net C#代码转换工具
- OpenRTMFP/Cumulus性能优化(4) RTMFP协议详解(1)
- 程序员究竟该如何提高效率
- 归并排序--数组和链表的实现
- 什么样的项目算是成功的?
- linux各目录代表的含义及bin /sbin /usr/bin /usr/sbin 区别
- 工作总结