这是一个普遍的需求,希望记录统计一共获得多少武学和道行等,以数字形式表现,方便计算。

由于zmud版本的不同,支持的函数有所差异。目前讨论zmud4.62和5.55版本的实现。

Trigger实例:

#tri ^你灭妖得到了(*)点潜能!
{convertnumber %1
#add reward_qn %number(@in_chinese_number)
#say 此次连线灭妖共获得@reward_qn点潜能,共@reward_guai个怪,平均每个怪[@reward_qn/@reward_guai]点潜能
#color white}

相关alias定义:

#alias reward_init {#var reward_guai 0;#var reward_wx 0;#var reward_qn 0;#var reward_time {%time()} {%time()}

#alias reward {#say 此次连线登陆时间@reward_time,灭妖共@reward_guai个怪,,共获得@reward_qn点潜能,平均每个怪[@reward_qn/@reward_guai]点潜能,共获得@reward_wx点武学,平均每个怪[@reward_wx/@reward_guai]点武学}

#alias convertnumber {#var in_chinese_number %1;#read cmd_digit.txt;#var in_chinese_number @out_number;#say @in_chinese_number}

测试:

convertnumber 一万零五百二十一

将显示 10521

最主要的cmd_digit.txt实现由于4.62和5.55版本函数的差异分别实现:

4.62版本 cmd_digit.txt

#var chinese_number_list {零|一|二|三|四|五|六|七|八|九|十|百|千|万} #var number_list {|1|2|3|4|5|6|7|8|9|A|B|C|D} #var ix 0 #alias item {#var tmp_n 0;#ForAll %1 {#add tmp_n 1;#if (@tmp_n=%2) {#var myitem %i}}} #FORALL @chinese_number_list {#add ix 1;item @chinese_number_list @ix;#var tmp_chinese @myitem;item @number_list @ix;#var tmp_number @myitem;#var in_chinese_number %replace(@in_chinese_number,@tmp_chinese,@tmp_number);} #if !%isnumber(%copy(@in_chinese_number,1,1)) {#var in_chinese_number %insert(1,@in_chinese_number,1)} #var tmp_len %len(@in_chinese_number); #var out_number 0; #Loop @tmp_len {#var tmp_word %copy(@in_chinese_number,%{i},1);#if (%isnumber(@tmp_word)) {#if (%i<@tmp_len) {#var tmp_n %copy(@in_chinese_number,(%i+1),1);#if (@tmp_n=A) {#var tmp_n 1};#if (@tmp_n=B) {#var tmp_n 2};#if (@tmp_n=C) {#var tmp_n 3};#if (@tmp_n=D) {#var tmp_n 4};#case (%eval(@tmp_n)) {#add out_number (%number(@tmp_word)*10)} {#add out_number (%number(@tmp_word)*100)} {#add out_number (%number(@tmp_word)*1000)} {#add out_number (%number(@tmp_word)*10000)}} {#add out_number %number(@tmp_word)}}}; #var in_chinese_number @out_number #say @in_chinese_number #unvar tmp_len #unvar chinese_number_list #unvar number_list #unvar ix

5.55版本(4.62版本是通用版本,即在5.55版本中也可以用上面的代码)cmd_digit.txt

#var chinese_number_list {零|一|二|三|四|五|六|七|八|九|十|百|千|万} #var number_list {|1|2|3|4|5|6|7|8|9|A|B|C|D} #var ix 0 #FORALL @chinese_number_list {#add ix 1;#var in_chinese_number %replace(@in_chinese_number,%item(@chinese_number_list,@ix),%item(@number_list,@ix));} #if !%isnumber(%copy(@in_chinese_number,1,1)) {#var in_chinese_number %insert(1,@in_chinese_number,1)} #var tmp_len %len(@in_chinese_number); #var out_number 0; #Loop @tmp_len {#var tmp_word %copy(@in_chinese_number,%{i},1);#if (%isnumber(@tmp_word)) {#if (%{i}<@tmp_len) {#var tmp_n %copy(@in_chinese_number,(%{i}+1),1);#case (%ascii(@tmp_n)-%ascii(A)+1) {#add out_number (%number(@tmp_word)*10)} {#add out_number (%number(@tmp_word)*100)} {#add out_number (%number(@tmp_word)*1000)} {#add out_number (%number(@tmp_word)*10000)}} {#add out_number %number(@tmp_word)}}}; #var in_chinese_number @out_number #unvar tmp_len #unvar chinese_number_list #unvar number_list #unvar ix

cmd_digit.txt放在zmud.exe的所在的目录下。

zmud之汉字转换为数字相关推荐

  1. 阿拉伯数字转换为汉字大写数字

    阿拉伯数字转换为汉字大写数字: 首先需要建立两个视图: create view V_HZNumber as     SELECT 0 F1,'零' F2,'个' F3 UNION     SELECT ...

  2. JAVA实现汉字转换为拼音 pinyin4j/JPinyin

    转载自  JAVA实现汉字转换为拼音 pinyin4j/JPinyin 在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,比如说通讯录,就会要求按名字首字符发音排序,如果自己写实现这方面的功能是个 ...

  3. python字符串转化为数字-python 中判断字符串能否转换为数字类型

    方法一: isdigit() 不可识别汉字 小数类型 str1 = "1" str2 = "2.1" str3 = "三" str4 = & ...

  4. mysql中12e10等于多少_一篇文章看懂mysql中varchar能存多少汉字、数字,以及varchar(100)和varchar(10)的区别...

    看完这篇文章,你能搞清楚以下问题: 1.varchar(100)和varchar(10)的区别在哪里? 2.varchar能存多少汉字.数字? 3.varchar的最大长度是多少呢? 4.字符.字节. ...

  5. 程序实现汉字转换为拼音

    做了一个讯飞语音识别的项目,API返回的识别结果是汉字格式.需要提取关键字与数据库中的数据进行匹配,为提高数据的识别率.考虑到需要将数据库中的文字和识别后的数据转换为拼音的形式进行匹配.但也没找到相关 ...

  6. js和ts两种 将 小写金额转中文大写汉字,阿拉伯数字金额格式化成中文大写汉字,数字金额转换成财务发票大写中文

    通过 npm i money2cn 安装  支持typescript 使用: import  money2cn  from 'money2cn' const nums = money2cn(23423 ...

  7. MySQL中的char和varcharmysql中varchar能存多少汉字、数字,以及varchar(100)和varchar(10)的区别

    1.varchar能存多少汉字.数字? 具体还是要看版本的,一个字符占用3个字节 ,一个汉字(包括数字)占用3个字节=一个字符 4.0版本以下,varchar(100),指的是100字节,如果存放UT ...

  8. java字符串转换为拼音_JAVA实现汉字转换为拼音 pinyin4j/JPinyin

    在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,比如说通讯录,就会要求按名字首字符发音排序,如果自己写实现这方面的功能是个很好大的工程,还好网上有公开的第三方jar支持转换,结合网上很多前辈的代 ...

  9. 探索PinYin4j.jar将汉字转换为拼音的基本用法

    将汉字转换为拼音在Android开发中是个很常见的问题.例如:在android手机应用开发中,要查询联系人的姓名,通常都是用拼音进行查询的. Pinyin4j是一个功能强悍的汉语拼音工具包,是sour ...

  10. Python小技巧:判断输入是否为汉字/英文/数字

    Python判断输入是否为汉字/英文/数字 1. 判断输入是否为汉字 2. 判读是否为英文 3. 判断是否为数字 1. 判断输入是否为汉字 定义函数is_chinese,输入为字符串,该函数通过遍历字 ...

最新文章

  1. POI按照源单元格设置目标单元格格式
  2. 网站推广——专业网站推广浅析企业网站排名有哪些影响因素?
  3. CvSVM::EPS_SVR train_auto assertion sv_count != 0 failed原因
  4. android分辨率hdpi,Android资源 - 哪些分辨率应该进入hdpi,ldpi,mdpi和xhdpi目录
  5. 多个服务器数据互通_5月23日部分服务器数据互通公告!
  6. as3中splice和slice的用法
  7. 12.4!移动云 TeaTalk 即将抵达深圳,不要错过!
  8. 截获webView点击事件
  9. 使用npm uninstall卸载express无效
  10. python 微信分享链接_python如何爬取搜狗微信公众号文章永久链接的思路解析
  11. 1月全球CTF比赛时间汇总来了!
  12. 008九九乘法表(详解)
  13. HTML嵌套注释、多行注释、多级注释,提高生产力
  14. Unity GL画线的坑
  15. FFMPEG filter使用实例(实现视频缩放,裁剪,水印等)
  16. iOS 图片合成(一)
  17. 24、基于51单片机公交车语音播报加时间显示系统设计
  18. 项目人生,人生项目--王如龙语录
  19. Firefox 将启用全新 logo 设计,不同图标对应不同产品线
  20. 【个推】后端java开发

热门文章

  1. maven jar坐标和doc引入中央创库没有的jar
  2. js 删除节点小案例
  3. 伪标签+html,伪标签(Pseudo-Labelling)介绍:一种半监督机器学习技术
  4. 牛客网经典120道Java面试常见题(试题+答案)
  5. bak 安全牛 kali link
  6. 但行好事 莫问前程 学习笔记 media=screen
  7. 优化网站加快浏览器访问打开速度
  8. vscode中使用beautify插件格式化vue文件
  9. 伴风网易博客linux,网易博客链接
  10. 代码实现HelloMeituanCom转换为hello.meituan.com