采用了遞歸的方法
1
package src;
2
/** *//** *//** *//**
3
*
4
* @author Mr.Yang
6
*/
7
public class Numeric 
{
8
9
/** *//** *//** *//**
10
* @param args
11
*/
12
public static void main(String[] args) 
{
13
System.out.println(getChinese(2147483648l,0));
14
}
15
/** *//** *//** *//**
16
* 獲得阿拉伯數字對應的中文
17
* 最大只支持到9千9百九十九億9千9百九十九萬9千9百九十九
18
* @param number 要轉換的數字
19
* @param depth 遞歸深度,使用時候直接給0即可
20
* @return 數字的中文描述
21
*/
22
public static String getChinese(long number,int depth)
{
23
if(depth<0)
24
depth = 0;
25
String chinese = "";
26
String src = number+"";
27
if(src.charAt(src.length()-1)=='l' || src.charAt(src.length()-1)=='L' )
28

{
29
src = src.substring(0, src.length()-1);
30
}
31
System.out.println(src);
32
33
if(src.length()>4)
34
chinese = getChinese(Integer.parseInt(src.substring(0, src.length()-4)),depth+1)+
35
getChinese(Integer.parseInt(src.substring(src.length()-4, src.length())),depth-1);
36
else
{
37
char prv = 0;
38
for(int i=0;i<src.length();i++)
{
39
switch(src.charAt(i))
{
40
case '0':
41
if(prv != '0')
42
chinese = chinese+"零";
43
break;
44
case '1':
45
chinese = chinese+"一";
46
break;
47
case '2':
48
chinese = chinese+"二";
49
break;
50
case '3':
51
chinese = chinese+"三";
52
break;
53
case '4':
54
chinese = chinese+"四";
55
break;
56
case '5':
57
chinese = chinese+"五";
58
break;
59
case '6':
60
chinese = chinese+"六";
61
break;
62
case '7':
63
chinese = chinese+"七";
64
break;
65
case '8':
66
chinese = chinese+"八";
67
break;
68
case '9':
69
chinese = chinese+"九";
70
break;
71
}
72
prv = src.charAt(i);
73
74
switch(src.length()-1-i)
{
75
case 1://十
76
if(prv != '0')
77
chinese = chinese + "十";
78
break;
79
case 2://百
80
if(prv != '0')
81
chinese = chinese + "百";
82
break;
83
case 3://千
84
if(prv != '0')
85
chinese = chinese + "千";
86
break;
87
88
}
89
}
90
}
91
while(chinese.length()>0 && chinese.lastIndexOf("零")==chinese.length()-1)
92
chinese = chinese.substring(0,chinese.length()-1);
93
if(depth == 1)
94
chinese += "萬";
95
if(depth == 2)
96
chinese += "億";
97
98
return chinese;
99
}
100
101
}
102

2


3

4

6

7




8

9


10

11

12




13

14

15


16

17

18

19

20

21

22




23

24

25

26

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

61

62

63

64

65

66

67

68

69

70

71

72

73

74




75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102
