public static class ForChinese{static readonly Regex _nRegex = new Regex(@"[零一二三四五六七八九]+");static readonly Regex _pRegex = new Regex(@"[十百千万亿]+");static readonly Dictionary<char, int> _numDict = new Dictionary<char, int>{{ '零', 0 },{ '一', 1 },{ '二', 2 },{ '三', 3 },{ '四', 4 },{ '五', 5 },{ '六', 6 },{ '七', 7 },{ '八', 8 },{ '九', 9 }};static readonly Dictionary<char, double> _postDict = new Dictionary<char, double>{{ '十', Math.Pow(10,1) },{ '百', Math.Pow(10,2) },{ '千', Math.Pow(10,3) },{ '万', Math.Pow(10,4) },{ '亿', Math.Pow(10,8) }};public static int TransNum(string num){return string.IsNullOrEmpty(num) ? 0 : _numDict[num.Last()];}public static double TransPost(string post){return post.Aggregate<char, double>(1, (current, p) => current * _postDict[p]);}public static double ChineseToRomanNumerals(string cn){var split = cn.Split('万', '亿');double sum = 0;for (var i = 0; i < split.Length; i++){var sp = split[i];var str = sp;double numSum = 0;while (str.Length > 0){// 处理数字var nStr = _nRegex.Match(str).Value;var n = TransNum(nStr);// 处理数位var pStr = _pRegex.Match(str).Value;var p = TransPost(pStr);// 添加数字numSum += (n == 0 ? 1 : n) * p;// 循环var numPost = string.Concat(nStr, pStr);str = str.Substring(numPost.Length);}var pow = split.Length - i - 1;var post = Math.Pow(10000, pow);sum += numSum * post;}return sum;}}

中文汉字数字转罗马数字方法相关推荐

  1. java 数字转换成汉字_Java-String-阿拉伯数字转换成中文汉字数字

    package com.test; public class NumberUtils { private static final String[] UNITS = { "", & ...

  2. python2 正则匹配中文汉字数字字母

    python2 re.compile匹配中文数字字母: # -*- coding: utf-8 -*- import redef chineseToUnic(ch):# 中文字符串转unicode编码 ...

  3. Java获取中文汉字拼音首字母方法二

    效果如下 岐山县 qishanxian QSX Java代码 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge. ...

  4. Java获取中文汉字拼音首字母方法一(更快速)

    实现效果 文字内容:小苹果 拼音首字母:xpg 工具类 import java.io.UnsupportedEncodingException;/*** @author yang* @version ...

  5. 关于 jsp java servlet 中文汉字乱码的解决方法

    在servlet类中的get,post最前面加上 req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding(&quo ...

  6. 数字转换成中文汉字数字

    1 class Student { 2 static String[] ss = new String[]{"零", "壹", "贰", & ...

  7. JAVA 中文汉字转换阿拉伯数字(最终版,已修复了亿及亿以下的汉数字的转换,超过后的数字,暂时不支持)

    嘎嘎嘎,大写的尴尬,非常感谢Eliauk_cc-May反馈的bug,代码重新修改啦,鉴于之前过于复杂的逻辑,本次进行了简化 //判断是否为中文数字字符public static List<Str ...

  8. 枚举中文转数字并easyexcel导入(读取Read)数据至数据库,用监听器解决导入关联多表的问题

    以下内容皆为本人学习过程中的所学的知识,全根据自己所学思路来写的. 大致流程如下: 一.创建实体类,注意有一个是导入的模板实体模型类(CustomManageAndCustomerInformatio ...

  9. oracle排序非英文最后,Oracle中中文、数字,英文混杂形式的字段进行排序的方法...

    http://blog.csdn.net/p451933505/article/details/9272257 对Oracle中中文.数字.英文混杂形式的字段进行排序的方法: 例如: order by ...

最新文章

  1. AAAI 2021 | 情感分析最新进展解读
  2. Windows Server Backup 备份活动目录
  3. 针对大表 设计高效的存储过程【原理篇】 附最差性能sql语句进化过程客串
  4. 2019年末逆向复习系列之Boss直聘Cookie加密字段__zp_stoken__逆向分析
  5. HC-05蓝牙模块基本使用
  6. 给 TWebBrowser.Document 定义事件
  7. 让你受用一辈子的一条CMD命令
  8. RabbitMQ基本管理(下)
  9. opencv-api morphologyEx
  10. UIWindow创建局部弹框
  11. LeetCode(961)——重复 N 次的元素(JavaScript)
  12. 成功送小米上市的米粉们,反被 P2P 爆雷炸成了灰!
  13. IIS 7.0 SSL 部署指南
  14. 增值税发票税控开票软件数据接口规范
  15. 3DMAx:能导入导出的文件格式
  16. quartz 整合 postgresql 附带例子
  17. (转载)反垃圾邮件技术解析
  18. 腾讯云数据迁移工具解决方案:华为云迁移到腾讯云
  19. Ubuntu 下查看图片
  20. 电压放大倍数公式运放_运放电路放大倍数的计算

热门文章

  1. 小程序使用vant中的步骤条 vant-steps
  2. git与github使用
  3. fifa11键盘按键_FIFA 20 Player集群
  4. 中国首份国际贸易企业信息化发展白皮书发布,小满科技后劲十足
  5. 计算机所有以太网适配的ip,演示win10电脑以太网没有有效的ip配置
  6. PC端安装android模拟器
  7. groovy快速上手第2篇:数据类型篇
  8. 参考爆料英特尔i5-10400f和i5-10400区别?哪个好?深度爆料评测
  9. 编码乱码问题解释,解决Tomcat乱码的最快速有效办法。【希望能够指正】
  10. 网络文件共享服务 - Samba详解