zoukankan      html  css  js  c++  java
  • JAVA常见算法题(二十五)

    /**
     * Java实现中文数字转换为阿拉伯数字
     * 
     * 
     * @author WQ
     *
     */
    public class Demo26 {
        public static void main(String[] args) {
            int chineseNumber2Int = chineseNumber2Int("十万一千");
            System.out.println(chineseNumber2Int);
        }
    
        private static int chineseNumber2Int(String chineseNumber) {
            int result = 0;
            int temp = 1;// 存放一个单位的数字如:十万
            int count = 0;// 判断是否有chArr
            char[] cnArr = new char[] { '一', '二', '三', '四', '五', '六', '七', '八', '九' };
            char[] chArr = new char[] { '十', '百', '千', '万', '亿' };
            for (int i = 0; i < chineseNumber.length(); i++) {
                boolean b = true;// 判断是否是chArr
                char c = chineseNumber.charAt(i);
                for (int j = 0; j < cnArr.length; j++) {// 非单位,即数字
                    if (c == cnArr[j]) {
                        if (0 != count) {// 添加下一个单位之前,先把上一个单位值添加到结果中
                            result += temp;
                            temp = 1;
                            count = 0;
                        }
                        // 下标+1,就是对应的值
                        temp = j + 1;
                        b = false;
                        break;
                    }
                }
                if (b) {// 单位{'十','百','千','万','亿'}
                    for (int j = 0; j < chArr.length; j++) {
                        if (c == chArr[j]) {
                            switch (j) {
                            case 0:
                                temp *= 10;
                                break;
                            case 1:
                                temp *= 100;
                                break;
                            case 2:
                                temp *= 1000;
                                break;
                            case 3:
                                temp *= 10000;
                                break;
                            case 4:
                                temp *= 100000000;
                                break;
                            default:
                                break;
                            }
                            count++;
                        }
                    }
                }
                if (i == chineseNumber.length() - 1) {// 遍历到最后一个字符
                    result += temp;
                }
            }
            return result;
        }
    
    }
  • 相关阅读:
    MYSQL注入天书之HTTP头部介绍
    Sqli-labs less 18
    Sqli-labs less 19
    Sqli-labs less 20
    Sqli-labs less 21
    Sqli-labs less 22
    Python3之PrettyTable模块
    python设计模式
    python3反射解析
    Python3异常处理
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/6953084.html
Copyright © 2011-2022 走看看