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

面试题 相关文章推荐
广州迈达威.net面试题目
Mar 10 面试题
深圳-东方伟业笔试部分
Feb 11 面试题
铭万公司.net面试题笔试题
Jul 20 面试题
某公司.Net方向面试题
Apr 24 面试题
世界经理人咨询有限公司面试
Sep 23 面试题
C#笔试题
Jul 14 面试题
下列程序在32位linux或unix中的结果是什么
Jan 26 面试题
linux面试题参考答案(5)
Sep 01 面试题
How to spawning asynchronous work in J2EE
Aug 29 面试题
两道JAVA笔试题
Sep 14 面试题
请说出这段代码执行后a和b的值分别是多少
Mar 28 面试题
Ruby如何定义一个类
Oct 08 面试题
如何写出高质量、高性能的MySQL查询
Nov 17 #面试题
几个MySql的面试题
Apr 22 #面试题
简单叙述一下MYSQL的优化
May 09 #面试题
MySQL面试题目集锦
Apr 14 #面试题
如何提高MySql的安全性
Jun 19 #面试题
介绍一下Mysql的存储引擎
Feb 12 #面试题
介绍一下如何优化MySql
Dec 20 #面试题
You might like
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
浅谈php函数serialize()与unserialize()的使用方法
2014/08/19 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
小米公司JavaScript面试题
2014/12/29 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
layui获取选中行数据的实例讲解
2018/08/19 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法
2019/02/21 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
ant design的table组件实现全选功能以及自定义分页
2020/11/17 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
Python Property属性的2种用法
2015/06/21 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
python模拟实现斗地主发牌
2020/01/07 Python
linux 下selenium chrome使用详解
2020/04/02 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
2020/07/01 Python
Django框架安装及项目创建过程解析
2020/09/14 Python
python中字典增加和删除使用方法
2020/09/30 Python
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
苹果台湾官网:Apple台湾
2019/01/05 全球购物
教师自荐书
2013/10/08 职场文书
大学在校生求职信范文
2013/11/21 职场文书
金融行业务员的自我评价
2013/12/13 职场文书
文明风采获奖感言
2014/02/18 职场文书
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
年会搞笑主持词
2014/03/27 职场文书
《春雨》教学反思
2014/04/24 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
活动主持人开场白
2015/05/28 职场文书