问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

编程实现将1234为一千二百三十四

发布网友 发布时间:2023-10-19 11:58

我来回答

1个回答

热心网友 时间:2024-12-13 05:54

给你一个demo自己看看吧,C#写的

using System;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            string Num = Console.ReadLine();
            Console.WriteLine((new NumFormat()).NumToChn(Num));
            Console.ReadKey();
        }
    }

    class NumFormat
    {
        public NumFormat() { }

        // 转换数字 
        private char ToNum(char x)
        {
            string strChnNames = "零一二三四五六七*";
            string strNumNames = "0123456789";
            return strChnNames[strNumNames.IndexOf(x)];
        }

        // 转换万以下整数 
        private string ChangeInt(string x)
        {
            string[] strArrayLevelNames = new string[4] { "", "十", "百", "千" };
            string ret = "";
            int i;
            for (i = x.Length - 1; i >= 0; i--)
                if (x[i] == '0')
                    ret = ToNum(x[i]) + ret;
                else
                    ret = ToNum(x[i]) + strArrayLevelNames[x.Length - 1 - i] + ret;
            while ((i = ret.IndexOf("零零")) != -1)
                ret = ret.Remove(i, 1);
            if (ret[ret.Length - 1] == '零' && ret.Length > 1)
                ret = ret.Remove(ret.Length - 1, 1);
            if (ret.Length >= 2 && ret.Substring(0, 2) == "一十")
                ret = ret.Remove(0, 1);
            return ret;
        }

        // 转换整数 
        private string ToInt(string x)
        {
            int len = x.Length;
            string ret, temp;
            if (len <= 4)
                ret = ChangeInt(x);
            else if (len <= 8)
            {
                ret = ChangeInt(x.Substring(0, len - 4)) + "万";
                temp = ChangeInt(x.Substring(len - 4, 4));
                if (temp.IndexOf("千") == -1 && temp != "")
                    ret += "零" + temp;
                else
                    ret += temp;
            }
            else
            {
                ret = ChangeInt(x.Substring(0, len - 8)) + "亿";
                temp = ChangeInt(x.Substring(len - 8, 4));
                if (temp.IndexOf("千") == -1 && temp != "")
                    ret += "零" + temp;
                else
                    ret += temp;
                ret += "万";
                temp = ChangeInt(x.Substring(len - 4, 4));
                if (temp.IndexOf("千") == -1 && temp != "")
                    ret += "零" + temp;
                else
                    ret += temp;
            }
            int i;
            if ((i = ret.IndexOf("零万")) != -1)
                ret = ret.Remove(i + 1, 1);
            while ((i = ret.IndexOf("零零")) != -1)
                ret = ret.Remove(i, 1);
            if (ret[ret.Length - 1] == '零' && ret.Length > 1)
                ret = ret.Remove(ret.Length - 1, 1);
            return ret;
        }

        private string ToDecimal(string x)
        {
            string ret = "";
            for (int i = 0; i < x.Length; i++)
                ret += ToNum(x[i]);
            return ret;
        }

        public string NumToChn(string x)
        {
            if (x.Length == 0)
                return "";
            string ret = "";
            if (x[0] == '-')
            {
                ret = "负";
                x = x.Remove(0, 1);
            }
            if (x[0].ToString() == ".")
                x = "0" + x;
            if (x[x.Length - 1].ToString() == ".")
                x = x.Remove(x.Length - 1, 1);
            if (x.IndexOf(".") > -1)
                ret += ToInt(x.Substring(0, x.IndexOf("."))) + "点" + ToDecimal(x.Substring(x.IndexOf(".") + 1));
            else
                ret += ToInt(x);
            return ret;
        }
    }
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
你见过最古老的东西是什么,有多少年历史 WORD中怎么输出稿纸模式word中怎么输出稿纸模式 女性尿检阴性是什么意思 阴性尿检是什么意思 尿检阴性是什么 win10如何查看电脑配置参数 win10怎样查看电脑配置参数 多地对公职人员提接种要求 亚马逊订单可以退回任何Kohl's商店,7月份生效 亚马逊提供免费退货,珠宝退货卖家要承担运费吗 新的亚马逊退货政策惹争议!官方解答来了 winPE可以单独作为系统使用吗?7 未满18岁,但是有身份证,银行卡,稳定工作,可以办理手机分期...5 阴历八月十五是阳历几月几日12 阴历和阳历是同一天一般多少年一次?685 怎样写祝友人旅游成功词? 北京华远裘马四季好不好? 为什么mac端的百度网盘突然进不去了?1 合肥哪里有比较好的化妆品店??有卖美白和去黑头的??? 打印机如何连接到电脑522 求一首英雄联盟精彩集锦的bgm 经常唱 where are ...30 未满18岁的身份证可以办储蓄卡吗? 王羲之的圣教序可分哪几个部分,我看有三部分却不知何来,我想知道第各个... 不想谈恋爱是什么原因? 为什么我一直不想谈恋爱7 总是不想谈恋爱怎么办108 总有一段时间不想谈恋爱了是怎么回事?33 股市到底是怎么运作的!!411 生活中,能让女人心动的,往往是哪种类型的男人? 语言暴力会毁掉一个孩子吗? 家长的语言暴力会造成哪些危害呢? 高手近来帮翻译一下,谢谢6 怎样区别开凤凰木、蓝花楹、楹树、南洋楹、大叶合欢、复叶叶栾树?_百 ... 十步杀一人,千里不留行。是什么意思?621 Mac百度网盘网页版 为什么有时候能下载文件有时不能,并且连... “十步杀一人,千里不留行。”出自李白的哪首诗?119 ...请问大家这些国外进口化妆品在国内哪里有代理商呢? 劳动仲裁申请强制执行后,法院说公司不在了,所以钱要不到了,我...5 关于如何有信息素养的格言 打印机已连接电脑,但是没有反应这怎么办1 如何一年内强制二次修改? 国际经济与贸易专业对英语要求高吗?9 国际经济与贸易专业还要英语口语考试才能报考?4 请语音告诉我妹妹是怎么说的,用英语22 sister是姐姐还是妹妹的意思?29 觌氅、餮鼗、曩磲、蕤颥、鳎鹕、鲦鲻、耱貊、貘鍪、籴耋、瓞耵。都是... 925银饰品怎么保养才能不变色?5 925银饰品怎么保养才不变色?23 求电影&lt;完全家族&gt;资源 蚂蚁借呗分十二期,还款日是每月十二号,第一期可以提前还款,今... 北京华远裘马四季楼盘房源情况?