• 中文数字大小写转阿拉伯数字


    目前只支持”万“以下的转换。

    private static string GetNumber4Chinese(string str)
            {
                string istr = "0";
                string cstr = string.Empty;
                string nstr = string.Empty;
                for (int i = 0; i < str.Length; i++)
                {
                    cstr = str.Substring(i, 1);
                    nstr = (i < str.Length - 1) ? str.Substring(i + 1, 1) : "个";

                    switch (cstr)
                    {
                        case "一":
                        case "壹":
                            istr = (Convert.ToInt64(istr) + 1 * GetBaseNumber4ChineseUnit(nstr)).ToString();
                            break;
                        case "二":
                        case "两":
                        case "贰":
                            istr = (Convert.ToInt64(istr) + 2 * GetBaseNumber4ChineseUnit(nstr)).ToString();
                            break;
                        case "三":
                        case "叁":
                            istr = (Convert.ToInt64(istr) + 3 * GetBaseNumber4ChineseUnit(nstr)).ToString();
                            break;
                        case "四":
                        case "肆":
                            istr = (Convert.ToInt64(istr) + 4 * GetBaseNumber4ChineseUnit(nstr)).ToString();
                            break;
                        case "五":
                        case "伍":
                            istr = (Convert.ToInt64(istr) + 5 * GetBaseNumber4ChineseUnit(nstr)).ToString();
                            break;
                        case "六":
                        case "陆":
                            istr = (Convert.ToInt64(istr) + 6 * GetBaseNumber4ChineseUnit(nstr)).ToString();
                            break;
                        case "七":
                        case "柒":
                            istr = (Convert.ToInt64(istr) + 7 * GetBaseNumber4ChineseUnit(nstr)).ToString();
                            break;
                        case "八":
                        case "捌":
                            istr = (Convert.ToInt64(istr) + 8 * GetBaseNumber4ChineseUnit(nstr)).ToString();
                            break;
                        case "九":
                        case "玖":
                            istr = (Convert.ToInt64(istr) + 9 * GetBaseNumber4ChineseUnit(nstr)).ToString();
                            break;
                        default:
                            if (str.Length < 2)
                            {
                                istr = GetBaseNumber4ChineseUnit(cstr).ToString();
                            }
                            else if (str.Length == 2 && (str.StartsWith("十") || str.StartsWith("拾")))
                            {
                                return (10 + Convert.ToInt64(GetNumber4Chinese(nstr))).ToString();
                            }
                            break;
                    }
                }
                return istr;
            }

            private static int GetBaseNumber4ChineseUnit(string str)
            {
                int ibase = 0;
                string cstr = "0";
                for (int i = 0; i < str.Length; i++)
                {
                    cstr = str.Substring(i, 1);
                    switch (cstr)
                    {
                        case "万":
                            ibase = 10000;
                            break;
                        case "千":
                            ibase = 1000;
                            break;
                        case "百":
                            ibase = 100;
                            break;
                        case "十":
                            ibase = 10;
                            break;
                        case "个":
                            ibase = 1;
                            break;
                    }
                }
                return ibase;
            }

  • 相关阅读:
    Codeforces 1249 F. Maximum Weight Subset
    Codeforces 1249 E. By Elevator or Stairs?
    Codeforces 1249 D2. Too Many Segments (hard version)
    使用subline作为Stata外部编辑器,并实现代码高亮
    Getting a handle on
    Economics degrees
    The threat to world
    他山之石,calling by share——python中既不是传址也不是传值
    Python的几个爬虫代码整理(网易云、微信、淘宝、今日头条)
    一梦江湖费六年——QQ群聊天分析
  • 原文地址:https://www.cnblogs.com/fery/p/3255010.html
Copyright © 2020-2023  润新知