c#阿拉伯数字转化为汉字一、二、二十一、一百零一

一、问题或解决方法应用场景。

       开发中遇到需要将阿拉伯数字转化成汉字一、二、三的问题,网上找了些,没找到符合自己需求, 总是会出现各种问题,于是自己写了一个通用的方法,基本满足大众需求(感觉比网上的一些好多了·-·)完整代码及测试数据在下面,大家有需要的完全可以直接拿去用。其他语言的话,稍微改动下,也可以直接拿去用的。

二、直接粘贴代码获取图片 

完整方法代码

using System;

class Program
{
    static void Main()
    {
        int[] numbers = { 1, 2, 3, 11, 121,10,20,0,100,101,1001,221,200,201 };

        foreach (int number in numbers)
        {
            string chineseNumber = ConvertToChinese(number);
            Console.WriteLine($"{number} 转化为汉字是:{chineseNumber}");
        }
    }

    static string ConvertToChinese(int number)
    {
        if (number < 0 || number > 999999999)
        {
            throw new ArgumentException("输入的数字超出范围(0 到 9999)");
        }

        if (number == 0)
        {
            return "零";
        }
        int recordSrcNum = srcNum;//记录下源数字
        string[] chineseDigits = { "", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
        string[] unitDigits = { "", "十", "百", "千" };

        string result = "";

        int unitIndex = 0;
        while (number > 0)
        {
            int digit = number % 10;
            if (digit > 0)
            {
                result = chineseDigits[digit] + unitDigits[unitIndex] + result;
            }
            else
            {
                // 处理连续的零
                if (result.Length > 0 && result[0] != '零')
                {
                    result = "零" + result;
                }
            }

            number /= 10;
            unitIndex++;
        }
        if (number >= 10 && number < 20) 单独处理10-19,否则会生成一十
            {
                return result.Substring(1);
            }
        return result;
    }
}

测试数据

1 转化为汉字是:一
2 转化为汉字是:二
3 转化为汉字是:三
11 转化为汉字是:十一
121 转化为汉字是:一百二十一
10 转化为汉字是:十
20 转化为汉字是:二十
0 转化为汉字是:零
100 转化为汉字是:一百
101 转化为汉字是:一百零一
1001 转化为汉字是:一千零一
221 转化为汉字是:二百二十一
200 转化为汉字是:二百
201 转化为汉字是:二百零一

三、注意事项,着重注意点。 

1.数字0一般可能会不需要,所以单独做了处理。

2.数字10-19的话,因为会转换为一十,所以也单独做了处理。

3.还有能够优化的地方,大家也可以提提意见,欢迎留言讨论。

持续更新中、、、、、、本人代码新手,能力有限,如有不足之处,欢迎大家一起讨论交流。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值