zoukankan      html  css  js  c++  java
  • C# 将中文数字转换成阿拉伯数字 (转)


    2011-08-30 18:28 85人阅读 评论(0) 收藏 举报
    string测试c
    代码从csdn复制,未做测试

    view sourceprint?
    public static class ChineseNumberUtil 

      

        /// <summary> 

        /// 将中文数字转换成阿拉伯数字 

        /// </summary> 

        /// <param name="cnNumber"></param> 

        /// <returns></returns> 

        static int ConverToDigit(string cnNumber) 

        { 

            int result = 0; 

            int temp = 0; 

            foreach (char c in cnNumber) 

            { 

                int temp1 = ToDigit(c); 

                if (temp1 == 10000) 

                { 

                    result += temp; 

                    result *= 10000; 

                    temp = 0; 

                } 

                else if (temp1 > 9) 

                { 

                    if (temp1 == 10 && temp == 0) temp = 1; 

                    result += temp * temp1; 

                    temp = 0; 

                } 

                else temp = temp1; 

            } 

            result += temp; 

            return result; 

        } 

      

        /// <summary> 

        /// 将中文数字转换成阿拉伯数字 

        /// </summary> 

        /// <param name="cn"></param> 

        /// <returns></returns> 

        static int ToDigit(char cn) 

        { 

            int number = 0; 

            switch (cn) 

            { 

                case '壹': 

                case '一': 

                    number = 1; 

                    break; 

                case '两': 

                case '贰': 

                case '二': 

                    number = 2; 

                    break; 

                case '叁': 

                case '三': 

                    number = 3; 

                    break; 

                case '肆': 

                case '四': 

                    number = 4; 

                    break; 

                case '伍': 

                case '五': 

                    number = 5; 

                    break; 

                case '陆': 

                case '六': 

                    number = 6; 

                    break; 

                case '柒': 

                case '七': 

                    number = 7; 

                    break; 

                case '捌': 

                case '八': 

                    number = 8; 

                    break; 

                case '玖': 

                case '九': 

                    number = 9; 

                    break; 

                case '拾': 

                case '十': 

                    number = 10; 

                    break; 

                case '佰': 

                case '百': 

                    number = 100; 

                    break; 

                case '仟': 

                case '千': 

                    number = 1000; 

                    break; 

                case '萬': 

                case '万': 

                    number = 10000; 

                    break; 

                case '零': 

                default: 

                    number = 0; 

                    break; 

            } 

            return number; 

        } 

      

        /// <summary> 

        /// 将中文数字转换成阿拉伯数字 

        /// </summary> 

        /// <param name="cnDigit"></param> 

        /// <returns></returns> 

        static long ToLong(string cnDigit) 

        { 

            long result = 0; 

            string[] str = cnDigit.Split('亿'); 

            result = ConverToDigit(str[0]); 

            if (str.Length > 1) 

            { 

                result *= 100000000; 

                result += ConverToDigit(str[1]); 

            } 

            return result; 

        } 

      

      

    }

  • 相关阅读:
    android studio 汉化 个性化 美化 快速操作项目 目录
    Where should we fork this repository?
    剑指offer-链表中环的入口节点
    剑指offer-两个链表的第一个公共节点
    剑指offer-链表中倒数第k个结点
    算法导论-快速排序
    剑指offer-旋转数组的最小数字
    剑指offer-数组中出现次数超过一半的数字
    PAT1048. Find Coins(01背包问题动态规划解法)
    17网易-优雅的点
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/3096727.html
Copyright © 2011-2022 走看看