【Java 实现】汉字转化为数字
把⼀个汉字转化为对应的阿拉伯数字,代码如下:import  *;public  class  Main {    public  static  void  main (String [] args ) {        Main m =new  Main ();        System .out .println (m .toNumber ("四亿七百六⼗万五千四百零九"));    }    HashMap <Character ,Integer > number =new  HashMap <>(){{        put ('⼀',1);        put ('⼆',2);        put ('三',3);        put ('四',4);        put ('五',5);        put ('六',6);        put ('七',7);        put ('⼋',8);        put ('九',9);    }};    HashMap <Character ,Integer > digit =new  HashMap <>(){{        put ('⼗',10);        put ('百',100);        put ('千',1000);        put ('万',10000);        put ('亿',100000000);    }};    List <Integer > temp =new  ArrayList <>();    public  int  toNumber (String str ){        boolean  ok =process (str );        int  res =0;        if (ok ){            for (int  i :temp ){                res +=i ;            }        }        return  res ;    }    public  boolean  process (String input ){        if (input .equals (""))            return  true ;        else  if (digit .containsKey (input .charAt (0))){            if (temp .size ()==0 || temp .get (temp .size ()-1) >= digit .get (input .charAt (0))){                return  false ;            }            int  cur =0;            while (temp .size ()>=1 && temp .get (temp .size ()-1) < digit .get (input .charAt (0))){                cur +=temp .get (temp .size ()-1);                temp .remove (temp .size ()-1);            }            temp .add (cur *digit .get (input .charAt (0)));            return  process (input .substring (1));        }else  if (number .containsKey (input .charAt (0))){            temp .add (number .get (input .charAt (0)));            return  proc
ess (input .substring (1));        }else  if (input .charAt (0)=='零'){            return  process (input .substring (1));        }else {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26html代码转链接
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
return  false ;        }    }}6061626364

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。