用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...

面试题 相关文章推荐
解释一下ArrayList Vector和LinkedList的实现和区别
Apr 26 面试题
接口中的方法可以是abstract的吗
Jul 23 面试题
RIP版本1跟版本2的区别
Dec 30 面试题
C#公司笔试题
Mar 28 面试题
Shell如何接收变量输入
Sep 24 面试题
Linux如何修改文件和文件夹的权限
Jun 27 面试题
性能测试工程师的面试题
Feb 20 面试题
什么是设计模式
Jun 17 面试题
EJB的激活机制
Oct 25 面试题
垃圾回收的优点和原理
May 16 面试题
Java基础面试题
Nov 02 面试题
描述JSP和Servlet的区别、共同点、各自应用的范围
Oct 02 面试题
如何写出高质量、高性能的MySQL查询
Nov 17 #面试题
几个MySql的面试题
Apr 22 #面试题
简单叙述一下MYSQL的优化
May 09 #面试题
MySQL面试题目集锦
Apr 14 #面试题
如何提高MySql的安全性
Jun 19 #面试题
介绍一下Mysql的存储引擎
Feb 12 #面试题
介绍一下如何优化MySql
Dec 20 #面试题
You might like
一个ubbcode的函数,速度很快.
2006/10/09 PHP
IIS下配置Php+Mysql+zend的图文教程
2006/12/08 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
javascript里的条件判断
2007/02/27 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
2015/10/26 Javascript
js实现文字截断功能
2016/09/14 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
python转换摩斯密码示例
2014/02/16 Python
Python脚本实现网卡流量监控
2015/02/14 Python
python实现电子产品商店
2019/02/26 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
销售行政专员职责
2014/01/03 职场文书
幼儿园儿童节活动主持词+串词大全
2014/03/21 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
市场督导岗位职责
2015/04/10 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
Python制作春联的示例代码
2022/01/22 Python
HDFS免重启挂载新磁盘
2022/04/06 Servers
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏