数字转化为中文念法

奇奇爱说话中,语音识别需要回答玩家的数学问题,所以需要把计算后的答案转化为中文念法。

using UnityEngine;

using System.Collections;

using System.Text.RegularExpressions;

 

public static class IntExtension

{

    private static string ToChineseWithinTenThousand(this int value)

    {

        if (value == 0)

            return "零";

 

        if (value < 0 || value >= 10000)

            return "";

 

        string result = "";

 

        string[] numbers = new string[] { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" };

 

        string[] units = new string[] { "", "十", "百", "千" };

 

        int cursor = 0;

 

        while (value > 0)

        {

            int remainder = value % 10;

 

            if(remainder != 0)

                result = numbers[remainder] + units[cursor] + result;

            else

                result = numbers[remainder] + result;

 

            cursor += 1;

 

            value /= 10;

        }

 

        result = Regex.Replace(result, "零*零", "零");

        result = Regex.Replace(result, "零$", "");

        result = Regex.Replace(result, "^一十", "十");

 

        return result;

    }

 

    public static string ToChinese(this int value)

    {

        if (value == 0)

            return "零";

 

        bool negative = value < 0;

        if (negative)

            value = -value;

 

        string result = "";

 

        string[] units = new string[] { "", "万", "亿" };

 

        int cursor = 0;

 

        while (value > 0)

        {

            int remainder = value % 10000;

 

            if (remainder != 0)

            {

                result = ToChineseWithinTenThousand(remainder) + units[cursor] + result;

                if (remainder < 1000 && remainder != value)

                    result = "零" + result;

            }

 

            cursor += 1;

 

            value /= 10000;

        }

 

        if (negative)

            result = "负" + result;

 

        return result;

    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,229评论 4 61
  • 对于人工智能来说,前60年的人工智能历程,可以用“无穷动”来形容;后60年的人工智能发展,可以用“无穷大”来期许。...
    补习club阅读 5,114评论 1 73
  • 今天开始,试着去输出。不为别人,只为让自己成长为自己喜欢的样子。 以前看书的时候觉得这书很好,很有意思。觉得会对我...
    why国人阅读 83评论 0 0
  • 你问我什么场合该说什么 我看着他 大多数时候这样就合适
    长马阅读 185评论 0 1
  • 柏树带着雨水的重量低垂枝头 沾染湿疹的诗行 等待晾晒 翌日的天空分外纯净蔚蓝 一抹纯棉的被谁锤打过的云层 散贴远天...
    祁连牧雪阅读 238评论 0 0