.№爱の冰封
开始懂得逢场作戏,虽然有许多只是雾水情缘; 不过没关系了,哪来那么多一生一世
BlogJava
首页
新随笔
联系
聚合
管理
posts - 14, comments - 37, trackbacks - 0
阿拉伯数字转换为中文大写汉字
采用了递归的方法
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
posted on 2007-07-09 15:46
冰封的爱
阅读(1096)
评论(1)
编辑
收藏
所属分类:
常用工具
FeedBack:
#
re: 阿拉伯数字转换为中文大写汉字
2009-01-30 18:31 |
往往
我是我
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
MySQL修改root密码方法总结
Combobox可输入下拉框
自动生成32位永不重复ID
BarcodeJSP_TRIAL_条形码
经常使用的正则表达式
java日期比较
JAVA除法保留小数点后两位的两种方法
阿拉伯数字转换为中文大写汉字
Js字符串操作函数大全
<
2009年1月
>
日
一
二
三
四
五
六
28
29
30
31
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
26
27
28
29
30
31
1
2
3
4
5
6
7
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔档案
2007年9月 (1)
2007年8月 (6)
2007年7月 (3)
2007年6月 (3)
文章分类
J2EE(64)
Linux(8)
常用工具(9)
开源项目(3)
技术(9)
文章档案
2009年1月 (1)
2008年4月 (1)
2008年1月 (1)
2007年10月 (2)
2007年9月 (2)
2007年8月 (1)
2007年7月 (73)
2007年6月 (12)
相册
冰封的相册
搜索
最新评论
1. re: 自动生成32位永不重复ID
444
--22
2. re: 根据拼音首字母查询人名(C#版)[未登录]
好用,谢谢
--123
3. re: java中生成32位随机ID [未登录]
手术
--想
4. re: Jocky混淆JAVA代码(保护你的JAVA项目)
求支持 JDK 1.7的版本
--pro
5. re: Jocky混淆JAVA代码(保护你的JAVA项目)
8530
--ss
阅读排行榜
1. 学会放下(640)
2. 项目人生(392)
3. IT外包值得体验(390)
4. 小型软件公司如何做大(383)
5. 2007年7月每日一句汇总(1)(354)
评论排行榜
1. 学会放下(0)
2. 2007年7月份 每日一句汇总(2)(0)
3. 2007年7月每日一句汇总(1)(0)
4. 英语每日一句(0)
5. IT外包值得体验(0)