一、问题或解决方法应用场景。
开发中遇到需要将阿拉伯数字转化成汉字一、二、三的问题,网上找了些,没找到符合自己需求, 总是会出现各种问题,于是自己写了一个通用的方法,基本满足大众需求(感觉比网上的一些好多了·-·)完整代码及测试数据在下面,大家有需要的完全可以直接拿去用。其他语言的话,稍微改动下,也可以直接拿去用的。
二、直接粘贴代码获取图片
完整方法代码
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.还有能够优化的地方,大家也可以提提意见,欢迎留言讨论。
持续更新中、、、、、、本人代码新手,能力有限,如有不足之处,欢迎大家一起讨论交流。