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

面试题 相关文章推荐
C语言面试题
May 19 面试题
Android面试题附答案
Dec 08 面试题
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
Apr 28 面试题
查询优化的一般准则有哪些
Mar 08 面试题
.net笔试题
Mar 03 面试题
维德科技C#面试题笔试题
Dec 09 面试题
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
Jun 27 面试题
Ajax请求总共有多少种Callback
Jul 17 面试题
介绍一下Java中的static关键字
May 12 面试题
介绍一下javax.servlet.Servlet接口及其主要方法
Nov 30 面试题
Delphi笔试题
Nov 14 面试题
Java面试题冲刺第十七天--基础篇3
Aug 07 面试题
如何写出高质量、高性能的MySQL查询
Nov 17 #面试题
几个MySql的面试题
Apr 22 #面试题
简单叙述一下MYSQL的优化
May 09 #面试题
MySQL面试题目集锦
Apr 14 #面试题
如何提高MySql的安全性
Jun 19 #面试题
介绍一下Mysql的存储引擎
Feb 12 #面试题
介绍一下如何优化MySql
Dec 20 #面试题
You might like
Smarty安装配置方法
2008/04/10 PHP
php 无限级 SelectTree 类
2009/05/19 PHP
extjs form textfield的隐藏方法
2008/12/29 Javascript
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
常用的js方法合集
2017/03/10 Javascript
js实现放大镜特效
2017/05/18 Javascript
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
python如何实现远程控制电脑(结合微信)
2015/12/21 Python
Python文本相似性计算之编辑距离详解
2016/11/28 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
python和js交互调用的方法
2020/06/23 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
Python基于execjs运行js过程解析
2020/11/27 Python
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
香港礼品网站:GiftU eshop
2017/09/01 全球购物
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
微博营销计划书
2014/01/10 职场文书
自立自强的名人事例
2014/02/10 职场文书
《那片绿绿的爬山虎》教学反思
2014/02/27 职场文书
村干部承诺书
2014/03/28 职场文书
共青团员自我评价
2015/03/10 职场文书
matlab xlabel位置的设置方式
2021/05/21 Python
详解Java实践之适配器模式
2021/06/18 Java/Android
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers