用Java语言将一个键盘输入的数字转化成中文输出


Posted in 面试题 onJanuary 25, 2013
将一个键盘输入的数字转化成中文输出
(例如:输入:1234567 输出:一百二拾三万四千五百六拾七)
用java语言实现,,请编一段程序实现!
1. public class Reader {
2. private String strNum;
3.
4. private String strNumChFormat;
5.
6. private String strNumTemp;
7.
8. private int intNumLen;
9.
10. private String strBegin;
11.
12. public Reader(String strNum) {
13. this.strNum = strNum;
14. }
15.
16. public boolean check(String strNum) {
17. boolean valid = false;
18. if (strNum.substring(0, 1).equals(“0″)) {
19. this.strNum = strNum.substring(1);
20. }
21. try {
22. new Double(strNum);
23. valid = true;
24. } catch (NumberFormatException ex) {
25. System.out.println(“Bad number format!”);
26. }
27. return valid;
28. }
29.
30. public void init() {
31. strNumChFormat = “”;
32. intNumLen = strNum.length();
33. strNumTemp = strNum;
34. strNumTemp = strNumTemp.replace(’1′, ‘一’);
35. strNumTemp = strNumTemp.replace(’2′, ‘二’);
36. strNumTemp = strNumTemp.replace(’3′, ‘三’);
37. strNumTemp = strNumTemp.replace(’4′, ‘四’);
38. strNumTemp = strNumTemp.replace(’5′, ‘五’);
39. strNumTemp = strNumTemp.replace(’6′, ‘六’);
40. strNumTemp = strNumTemp.replace(’7′, ‘七’);
41. strNumTemp = strNumTemp.replace(’8′, ‘八’);
42. strNumTemp = strNumTemp.replace(’9′, ‘九’);
43. strNumTemp = strNumTemp.replace(’0′, ‘零’);
44. strNumTemp = strNumTemp.replace(‘.’, ‘点’);
45. strBegin = strNumTemp.substring(0, 1);
46. }
47.
48. public String readNum() {
49. if (check(strNum)) {
50. init();
51. try {
52. for (int i = 1, j = 1, k = 1; i 53. if (strNumTemp.charAt(intNumLen – 1) == ‘零’ && i == 1) {
54. strNumChFormat = “位”;
55. } else if (strNumTemp.charAt(intNumLen – i) == ‘零’ && j == 1) {
56. strNumChFormat = “位” + strNumChFormat;
57. } else if (strNumTemp.charAt(intNumLen – i) == ‘点’) {
58. j = 1;
59. k = 1;
60. strNumChFormat = strNumTemp.charAt(intNumLen – i) + strNumChFormat;
61. continue;
62. } else {
63. strNumChFormat = strNumTemp.charAt(intNumLen – i) + strNumChFormat;
64. }
65. if (strNumTemp.charAt(intNumLen – i – 1) != ‘位’ && strNumTemp.charAt(intNumLen – i – 1) != ‘零’) {
66. if (j == 1 && i 67. strNumChFormat = ‘拾’ + strNumChFormat;
68. } else if (j == 2 && i 69. strNumChFormat = ‘百’ + strNumChFormat;
70. } else if (j == 3 && i 71. strNumChFormat = ‘千’ + strNumChFormat;
72. }
73. }
74. if (j == 4 && i 75. j = 0;
76. }
77. if (k == 4 && i 78. strNumChFormat = ‘万’ + strNumChFormat;
79. } else if (k == 8 && i 80. k = 0;
81. strNumChFormat = ‘亿’ + strNumChFormat;
82. }
83. j++;
84. k++;
85. }
86. while (strNumChFormat.indexOf(“位”) != -1) {
87. strNumChFormat = strNumChFormat.replaceAll(“位”, ” “);
88. }
89. if (strNumChFormat.substring(0, 2) == “一拾”) {
90. strNumChFormat = strNumChFormat.substring(1, strNumChFormat.length());
91. }
92. if (strNumChFormat.indexOf(“点”) >= 0) {
93. String rebegin = strNumChFormat.substring(0, strNumChFormat.indexOf(“点”));
94. String relast = strNumChFormat.substring(strNumChFormat.indexOf(“点”), strNumChFormat.length());
95. for (int i = 1; i 96. relast = relast.replaceAll(“拾”, “”);
97. relast = relast.replaceAll(“百”, “”);
98. relast = relast.replaceAll(“千”, “”);
99. relast = relast.replaceAll(“万”, “”);
100. relast = relast.replaceAll(“亿”, “”);
101. }
102. strNumChFormat = rebegin + relast;
103. }
104. } catch (ArrayIndexOutOfBoundsException ex) {
105. ex.printStackTrace();
106. } catch (Exception ex) {
107. ex.printStackTrace();
108. }
109. int off = strNumChFormat.indexOf(“点”);
110. strNumChFormat = strBegin + strNumChFormat.substring(0);
111. } else {
112. strNumChFormat = “”;
113. }
114. return strNumChFormat;
115. }
116.
117. public static void main(String args[]) {
118. try {
119. String number = args[0].toString();
120. System.out.println(“The number is: ” + number);
121. Reader reader = new Reader(number);
122. System.out.println(“Output String: ” + reader.readNum());
123. } catch (Exception ex) {
124. System.out.println(“Please input like that: javac Reader ”);
125. }
126. }
127. }

Tags in this post...

面试题 相关文章推荐
我的applet原先好好的, 一放到web server就会有问题,为什么?
May 10 面试题
怎样创建、运行java程序
Aug 01 面试题
怎么处理XML的中文问题
Mar 26 面试题
求高于平均分的学生学号及成绩
Sep 01 面试题
中海讯通笔试题
Sep 15 面试题
3个CCIE对一个工程师的面试题
May 06 面试题
网络安全方面的面试题
Nov 04 面试题
如何开发安全的AJAX应用
Mar 26 面试题
深圳茁壮笔试题
May 28 面试题
Hibernate持久层技术
Dec 16 面试题
如何现实servlet的单线程模式
Aug 05 面试题
JSF的标签库有哪些
Apr 27 面试题
如何写出高质量、高性能的MySQL查询
Nov 17 #面试题
几个MySql的面试题
Apr 22 #面试题
简单叙述一下MYSQL的优化
May 09 #面试题
MySQL面试题目集锦
Apr 14 #面试题
如何提高MySql的安全性
Jun 19 #面试题
介绍一下Mysql的存储引擎
Feb 12 #面试题
介绍一下如何优化MySql
Dec 20 #面试题
You might like
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
php单链表实现代码分享
2016/07/04 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
PHP保存Base64图片base64_decode的问题整理
2019/11/04 PHP
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
2014/06/12 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
完美解决js传递参数中加号和&号自动改变的方法
2016/10/11 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
JQuery元素快速查找与操作
2018/04/22 jQuery
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
分析python服务器拒绝服务攻击代码
2014/01/16 Python
Python中的zip函数使用示例
2015/01/29 Python
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
python实现ID3决策树算法
2018/08/29 Python
Django ImageFiled上传照片并显示的方法
2019/07/28 Python
如何写出高性能的JSP和Servlet
2013/01/22 面试题
外包公司软件测试工程师
2014/11/01 面试题
应届生求职信写作技巧
2013/10/24 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
活动总结格式范文
2014/04/26 职场文书
森林病虫害防治方案
2014/06/02 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
入党自传范文2015
2015/06/26 职场文书
食堂管理制度范本
2015/08/04 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
nginx服务器的下载安装与使用详解
2021/08/02 Servers
Redis基本数据类型List常用操作命令
2022/06/01 Redis