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

面试题 相关文章推荐
解释一下抽象方法和抽象类
Aug 27 面试题
构造方法和其他方法的区别?怎么调用父类的构造方法
Sep 22 面试题
程序运行正确, 但退出时却"core dump"了,怎么回事
Feb 19 面试题
说一下mysql, oracle等常见数据库的分页实现方案
Sep 29 面试题
武汉世纪畅想数字传播有限公司 .NET笔试题
Jun 13 面试题
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
May 09 面试题
恶意软件的定义
Nov 12 面试题
实体的生命周期
Aug 31 面试题
万户网络JAVA程序员岗位招聘笔试试卷
Jan 08 面试题
北京振戎融通Java面试题
Sep 03 面试题
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
Apr 24 面试题
Servlet都有哪些方法?主要作用是什么?
Mar 04 面试题
如何写出高质量、高性能的MySQL查询
Nov 17 #面试题
几个MySql的面试题
Apr 22 #面试题
简单叙述一下MYSQL的优化
May 09 #面试题
MySQL面试题目集锦
Apr 14 #面试题
如何提高MySql的安全性
Jun 19 #面试题
介绍一下Mysql的存储引擎
Feb 12 #面试题
介绍一下如何优化MySql
Dec 20 #面试题
You might like
PHP XML数据解析代码
2010/05/26 PHP
那些年一起学习的PHP(一)
2012/03/21 PHP
50个PHP程序性能优化的方法
2014/06/02 PHP
windows下apache搭建php开发环境
2015/08/27 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
jquery对象访问是什么及使用方法介绍
2016/05/03 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
2016/05/18 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
python语言使用技巧分享
2016/05/31 Python
Python程序中设置HTTP代理
2016/11/06 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
PyQt5实现简易计算器
2020/05/30 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
新手学python应该下哪个版本
2020/06/11 Python
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
销售工作岗位职责
2013/12/24 职场文书
工程质量承诺书范文
2014/03/27 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
入队仪式主持词
2015/07/04 职场文书
七一慰问简报
2015/07/20 职场文书
健康教育主题班会
2015/08/14 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android