UDN-企业互联网技术人气社区

板块导航

浏览  : 10643
回复  : 50

汉字转换为阿拉伯数字,一百三十四亿一千零二十三万六千六百零九,求转换

[复制链接]
发表于 2014-7-25 21:31:35 | 显示全部楼层
学习 了!!
        
使用道具 举报

回复

发表于 2014-7-26 03:01:37 | 显示全部楼层
我们现在的“规范”数字读法是根据阿拉伯数字系统设计的,
初看楼上的算法应该是对的,个人觉得蛮有意思的,有无缺陷咱再说

在文言中却不太一样,比如说102,按某个时期的古文,可能是“百二”,即“一百有二”
——但是这个跟目前某些方言是不一样的,比如闽南话里面百二是120的意思

而日文里有仍有这种方式的数字读法

因此中华文化博大精深不假,但是“规范数字读法”就不算传统读法啦
        
使用道具 举报

回复

发表于 2014-7-26 03:02:32 | 显示全部楼层
引用 29 楼 frank_lee_cn 的回复:25楼表达得真清楚,就是这样。
运用状态机实现即可。


这种算法不应该用状态机实现,否则过于复杂,效率很差
        
使用道具 举报

回复

发表于 2014-7-26 11:51:09 | 显示全部楼层
不会,状态机主要用以处理例外的状况,
例如已经处理过“亿”段,再出现亿段就不合理了;
或者已经处理到“万”段,再出现亿段也不合理;
当然,在段内已处理到十位却又出现千位,也不合理;
这些都可以用状态机判断,直接判错。

状态机要写得多复杂,看你自己决定,
如果连这类状态都不判断,程序太简陋。
        
使用道具 举报

回复

发表于 2014-7-26 12:56:25 | 显示全部楼层
这么牛逼!!!!!!!!!
        
使用道具 举报

回复

发表于 2014-7-26 14:41:30 | 显示全部楼层
u013542256 的方案,虽然我没实际编码试过,
但猜测可能会有一个问题,
比如 柒仟零叁
会不会处理成 703?
或者 壹万零叁
会不会处理成 103?
        
使用道具 举报

回复

发表于 2014-7-26 15:43:14 | 显示全部楼层
引用 35 楼 frank_lee_cn 的回复:u013542256 的方案,虽然我没实际编码试过,
但猜测可能会有一个问题,
比如 柒仟零叁
会不会处理成 703?
或者 壹万零叁
会不会处理成 103?



终于发现缺陷了!
可以优化一下,如果扫描序列中缺的那个单位,可以加进来
比如你的例子,从百位到个位缺了“十”位,就在相应位置上添0

10001这个例子更说明问题,需要添加“千,百,十”三个空位

或者更好的判断方法是,碰到“零”字,就判断“零”之前有没有空位,几个空位就补几个0




        
使用道具 举报

回复

发表于 2014-7-26 16:42:35 | 显示全部楼层
如果是十一亿一千零一万一百零一(1,110,010,101)这样的数字,第一个“一”要特别注意一下吧
        
使用道具 举报

回复

发表于 2014-7-26 17:53:25 | 显示全部楼层
引用 27 楼 u013542256 的回复:大家何必想的那么复杂呢,看到这么多凌乱的整齐的解答我也感觉应该很难。
然后拿笔在纸上画了



我的思路是,零和十都可以不要,第一步,先去掉他们就好。
然后第二步,去掉百,不过遇到B之后,在字母之前不够俩数字,就得中间补0,
然后去掉千、万、亿……
恩,别急,不知各位发现了没。中华文化博大精深阿。

这 十百千万亿就是让我们来识别的,其实根本不需要。
比如  “一百三十四亿一千零二十三万六千六百零九”
别管“十百千万亿”,见到“零~九”输出对应数字字符就好。我们来输出:
13410236609 哈哈,完全正确。
然后把这个字符串转为整型,这对大家来说不难吧。


十一 你怎么算呢?
        
使用道具 举报

回复

发表于 2014-7-26 18:25:48 | 显示全部楼层
- -还在努力学习中,希望能坚持下去,还没有到楼主提问的程度嘻嘻,汉子转化数字- -没有想过

        
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部