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

面试题 相关文章推荐
几道PHP的面试题
May 19 面试题
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
Mar 25 面试题
WebSphere 应用服务器都支持哪些认证
Dec 26 面试题
extern在函数声明中是什么意思
Jan 19 面试题
北京-环亚运商测试题.net程序员初步测试题
May 28 面试题
武汉高蓝德国际.net机试
Jun 24 面试题
Linux机考试题
Oct 16 面试题
法雷奥SQA(electric)面试问题
Jan 23 面试题
中科软笔试题和面试题
Oct 07 面试题
Python里面如何实现tuple和list的转换
Jun 13 面试题
关键字throw与throws的用法差异
Nov 22 面试题
J2EE中常用的名词进行解释
Nov 09 面试题
如何写出高质量、高性能的MySQL查询
Nov 17 #面试题
几个MySql的面试题
Apr 22 #面试题
简单叙述一下MYSQL的优化
May 09 #面试题
MySQL面试题目集锦
Apr 14 #面试题
如何提高MySql的安全性
Jun 19 #面试题
介绍一下Mysql的存储引擎
Feb 12 #面试题
介绍一下如何优化MySql
Dec 20 #面试题
You might like
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
codeigniter中实现一次性加载多个view的方法
2015/03/20 PHP
一实用的实现table排序的Javascript类库
2007/09/12 Javascript
为指定元素增加样式的js代码
2009/12/09 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
vue项目中导入swiper插件的方法
2018/01/30 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
2019/09/25 Javascript
Vue简单实现原理详解
2020/05/07 Javascript
[00:10]神之谴戒
2019/03/06 DOTA
讲解Python中运算符使用时的优先级
2015/05/14 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
Python实现图像的垂直投影示例
2020/01/17 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
学术会议邀请函范文
2014/01/22 职场文书
简单租房协议书范本
2014/08/20 职场文书
道德与公民自我评价
2015/03/09 职场文书
采购员工作总结范文
2015/08/12 职场文书
高三化学教学反思
2016/02/22 职场文书
Python实现简繁体转换
2021/06/07 Python
MySQL悲观锁与乐观锁的实现方案
2021/11/02 MySQL
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏