IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 汉字转阿拉伯数字 -> 正文阅读

[开发测试]汉字转阿拉伯数字

汉字转阿拉伯数字

//数字
    HashMap<Character, Integer> numberMap = new HashMap<Character, Integer>() {{
        put('一', 1);
        put('二', 2);
        put('三', 3);
        put('四', 4);
        put('五', 5);
        put('六', 6);
        put('七', 7);
        put('八', 8);
        put('九', 9);
    }};

    //单位
    HashMap<Character, Integer> unitMap = new HashMap<Character, Integer>() {{
        put('十', 10);
        put('百', 100);
        put('千', 1000);
    }};
    //单位
    HashMap<Character, Integer> unitsMap = new HashMap<Character, Integer>() {{
        put('万', 10000);
        put('亿', 100000000);
    }};

    @Test
    public void myTest08() {
         System.out.println(toNumber01("一"));
        System.out.println(toNumber01("十"));
        System.out.println(toNumber01("十一"));
        System.out.println(toNumber01("一十一"));
        System.out.println(toNumber01("二十"));
        System.out.println(toNumber01("二十一"));
        System.out.println(toNumber01("一百"));
        System.out.println(toNumber01("一百零一"));
        System.out.println(toNumber01("一百一十一"));
        System.out.println(toNumber01("一千"));
        System.out.println(toNumber01("一千零一"));
        System.out.println(toNumber01("一千一百零一"));
        System.out.println(toNumber01("一千一百十一"));
        System.out.println(toNumber01("一万"));
        System.out.println(toNumber01("一万零一"));
        System.out.println(toNumber01("一万一千零一"));
        System.out.println(toNumber01("一万一千一百零一"));
       System.out.println("二十一万五千:  " + toNumber01("二十一万五千"));
	   System.out.println("二十万:  " + toNumber01("二十万"));
		System.out.println("二十亿:  " + toNumber01("二十亿"));
        System.out.println("二十一亿五千万:  " + toNumber01("二十一亿五千万"));
    }

   public long toNumber01(String str) {
        char[] chars = str.toCharArray();
        //个数
        long number = 0;
        long unit = 0;
        long maxUnit = 0;
        //结果 暂时
        long temporary = 0;
        long result = 0;
        for (int i = 0; i < chars.length; i++) {
            if (numberMap.containsKey(chars[i])) {
                number = numberMap.get(chars[i]);
                //判断是否是最后一个
                if (i == chars.length - 1) {
                    temporary += (number + unit);
                    number = 0;
                    unit = 0;
                    continue;
                }
            }
            if (unitMap.containsKey(chars[i])) {
                unit = unitMap.get(chars[i]);
                maxUnit = unitMap.get(chars[i]);
            }
            //个数和单位都不为空时开始计算
            if (0 != number && 0 != unit) {
                temporary += (number * unit);
                number = 0;
                unit = 0;
            }
            //判断最后单位
            if (unitsMap.containsKey(chars[i])) {
                Integer finalUnit = unitsMap.get(chars[i]);
                if (maxUnit < unitsMap.get(chars[i])) {
                    result += ((temporary + number + unit) * finalUnit);
                    temporary = 0;
                    number = 0;
                    unit = 0;
                }
                maxUnit = unitsMap.get(chars[i]);
            }
        }
        return result + temporary+ (number + unit);
    }

测试结果

一 ====1
十 ====10
十一 ====11
一十一 ====11
二十 ====20
二十一 ====21
一百 ====100
一百零一 ====101
一百一十一 ====111
一千 ====1000
一千零一 ====1001
一千一百零一 ====1101
一千一百十一 ====1111
一万 ====10000
一万零 ====10001
一万一千零一 ====11001
一万一千一百零一 ====11101
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 18:12:40  更:2022-04-18 18:14:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 14:19:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码