zoukankan      html  css  js  c++  java
  • 转换中文数字成为阿拉伯数字

    package converter;
    
    import java.util.HashMap;
    
    //转换中文数字成为阿拉伯数字
    public class chineseConverter {
        
        //万以下的单位
        static HashMap<Character, Integer> m_mapUnit = new HashMap<Character, Integer>(); 
    
        //万以上的单位
        static HashMap<Character, Integer> m_wUnit = new HashMap<Character, Integer>(); 
    
        //数字
        static HashMap<Character, Integer> m_mapNum = new HashMap<Character, Integer>(); 
        
        static{
            //万以下的单位
            m_mapUnit.put(Character.valueOf('十'), Integer.valueOf(1));
            m_mapUnit.put(Character.valueOf('拾'), Integer.valueOf(1));
            m_mapUnit.put(Character.valueOf('百'), Integer.valueOf(2));
            m_mapUnit.put(Character.valueOf('佰'), Integer.valueOf(2));
            m_mapUnit.put(Character.valueOf('千'), Integer.valueOf(3));
            m_mapUnit.put(Character.valueOf('仟'), Integer.valueOf(3));
    
            //万以上的单位
            m_wUnit.put(Character.valueOf('万'), Integer.valueOf(4));
            m_wUnit.put(Character.valueOf('亿'), Integer.valueOf(8));
            m_wUnit.put(Character.valueOf('兆'), Integer.valueOf(16));
    
            //数字
            m_mapNum.put(Character.valueOf('零'), Integer.valueOf(0));
            m_mapNum.put(Character.valueOf('○'), Integer.valueOf(0));
            m_mapNum.put(Character.valueOf('〇'), Integer.valueOf(0));
            m_mapNum.put(Character.valueOf('一'), Integer.valueOf(1));
            m_mapNum.put(Character.valueOf('二'), Integer.valueOf(2));
            m_mapNum.put(Character.valueOf('三'), Integer.valueOf(3));
            m_mapNum.put(Character.valueOf('四'), Integer.valueOf(4));
            m_mapNum.put(Character.valueOf('五'), Integer.valueOf(5));
            m_mapNum.put(Character.valueOf('六'), Integer.valueOf(6));
            m_mapNum.put(Character.valueOf('七'), Integer.valueOf(7));
            m_mapNum.put(Character.valueOf('八'), Integer.valueOf(8));
            m_mapNum.put(Character.valueOf('九'), Integer.valueOf(9));
            m_mapNum.put(Character.valueOf('壹'), Integer.valueOf(1));
            m_mapNum.put(Character.valueOf('贰'), Integer.valueOf(2));
            m_mapNum.put(Character.valueOf('叁'), Integer.valueOf(3));
            m_mapNum.put(Character.valueOf('肆'), Integer.valueOf(4));
            m_mapNum.put(Character.valueOf('伍'), Integer.valueOf(5));
            m_mapNum.put(Character.valueOf('陆'), Integer.valueOf(6));
            m_mapNum.put(Character.valueOf('柒'), Integer.valueOf(7));
            m_mapNum.put(Character.valueOf('捌'), Integer.valueOf(8));
            m_mapNum.put(Character.valueOf('玖'), Integer.valueOf(9));
        }
        
        static int end = 0; //下次开始接收的位置
    
        //接收一个万以下的小数字
        public static int getFigure(String input ,int offset){
            int figure = 0;
            char c = input.charAt(offset);
            Integer ret = m_mapNum.get(c);
            if(ret == null){
                return 0;
            }
            figure = ret;
            
            offset++;
            if(offset>=input.length()){
                end = offset;
                return figure;
            }
            c = input.charAt(offset);
            int unitLevel = 0;
            ret = m_mapUnit.get(c);
            
            if(ret!=null){
                offset++;
                unitLevel = ret;
            }
            
            figure *= Math.pow(10.0D, unitLevel);
            end = offset;
            return figure;
        }
        
        public static void main(String[] args){
            int figure = 0;
            String input = "九百一十四";
            for(int i=0;i<input.length();i = end){
                int unitNum = getFigure(input,i);
                //TODO 如果不是小数字,再判断是否万级单位
                figure += unitNum;
                //System.out.println(end + " "+ figure + " " +  unitNum);
            }
            
            System.out.println(figure);
        }
        
    
    }
  • 相关阅读:
    Python的内置模块itertools
    列表的sort()和sorted()方法
    Python面试
    数据分析相关概念
    数据分析中Numpy,Pandas,Matplotlib,scripy和Scikit-Learn等数据处理库...
    mysql数据库的语法及简介
    Cannot add foreign key constraint
    MySQL数据库重装
    MySQL数据库在Python中的操作
    Python中的取整函数
  • 原文地址:https://www.cnblogs.com/i80386/p/2705104.html
Copyright © 2011-2022 走看看