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

面试题 相关文章推荐
Ibatis的核心配置文件都有什么
Sep 08 面试题
SQL Server数据库笔试题和答案
Feb 04 面试题
广州品高软件.net笔面试题目
Apr 18 面试题
了解AppleShare protocol(AppleShare协议)吗
Aug 28 面试题
UDP协议功能
Jan 06 面试题
一套C#面试题
Oct 09 面试题
网上常见的一份Linux面试题(多项选择部分)
Sep 09 面试题
什么是Linux虚拟文件系统VFS
Jan 31 面试题
介绍一下linux的文件权限
Jul 20 面试题
请写出一段Python代码实现删除一个list里面的重复元素
Dec 29 面试题
如何用Python输出一个Fibonacci数列
Aug 28 面试题
启动一个线程是用run()还是start()
Dec 25 面试题
如何写出高质量、高性能的MySQL查询
Nov 17 #面试题
几个MySql的面试题
Apr 22 #面试题
简单叙述一下MYSQL的优化
May 09 #面试题
MySQL面试题目集锦
Apr 14 #面试题
如何提高MySql的安全性
Jun 19 #面试题
介绍一下Mysql的存储引擎
Feb 12 #面试题
介绍一下如何优化MySql
Dec 20 #面试题
You might like
牡丹941资料
2021/03/01 无线电
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
PHP文件缓存类实现代码
2015/10/26 PHP
浅谈PHP中的错误处理和异常处理
2017/02/04 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
载入进度条 效果
2006/07/08 Javascript
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
2015/08/10 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
2016/05/05 Javascript
easyUI下拉列表点击事件使用方法
2017/05/18 Javascript
layui文件上传实现代码
2017/05/20 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
2019/04/24 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
Python远程桌面协议RDPY安装使用介绍
2015/04/15 Python
python实现爬虫统计学校BBS男女比例(一)
2015/12/31 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
Python实现GIF图倒放
2020/07/16 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
什么是数据抽象
2016/11/26 面试题
加多宝凉茶广告词
2014/03/18 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
职代会闭幕词
2015/01/28 职场文书