Big Bug Ban

兴趣 践行 创新

中文数字转换成阿拉伯数字

 

最近做的东西有这个需求.

需要把中文的数字转换成阿拉伯的数字

比如 三千七百二十八万九百一十四

结果为 37280914

网上找了一些 但是效果不好.

自己写个

考虑下分析树.

image

这是一个递归的树.所以需要构造一个递归的分析器来进行词法分析

语义分析

语义:

“/一/” “/二/” “/三/” “/四/” “/五/” “/六/” “/七/” “/八/” “/九/” “/零/”

对应:

1 2 3 4 5 6 7 8 9 0

 

样例如下:

<?php

include "ChineseNumberConv.class.php";

$s=new ChineseNumberConv();

$sss=$s->toAlpha("三千七百二十八万零九百一十四");

echo $sss."<br />";

?>

注意: 文件编码需要互相对应,否则正则不能找到匹配的

fromAlpha 这个函数完成度不高.. 只能用于2位以下的 暂时不更新

toAlpha()的返回值就是转换后的数字

 

源代码下载 [download id=”22″ ]

 

Written by princehaku

7月 4th, 2011 at 2:23 下午

Posted in php

Tagged with

with 8 comments

8 Responses to '中文数字转换成阿拉伯数字'

Subscribe to comments with RSS or TrackBack to '中文数字转换成阿拉伯数字'.

  1. 奇怪,为什么访问快了这么多,
    是学校提速了,还是你的网站换过服务器?

    愚人陈

    7 7月 11 at 7:01 下午

  2. 下午才换的..从美国中间移动到美国西边了

    princehaku

    7 7月 11 at 9:33 下午

  3. 嗯,在学校网络用sougou浏览器访问速度还不错…
    (在哪里买的空间?弄电子协会的网站,一直苦于找不到好的空间哎)

    愚人陈

    8 7月 11 at 12:47 上午

  4. 国外的vps..
    哦..你用的搜狗全网加速吧..

    princehaku

    8 7月 11 at 12:50 上午

  5. 是啊,要是能找到像baidu空间那样速度的空间就好了…
    总是找不到.
    不然我也想换博客的,baidu太和谐了.

    愚人陈

    15 7月 11 at 10:38 下午

  6. 原来的VPS刚好用了一年了,然后就换了?

    愚人陈

    15 7月 11 at 10:39 下午

  7. 百度我现在访问很慢..

    princehaku

    17 7月 11 at 8:37 上午

  8. 时间还没到 提前转了

    princehaku

    17 7月 11 at 8:37 上午

Leave a Reply