将一个键盘输入的数字转化成中文输出
package CompileProject;
/*28.将一个键盘输入的数字转化成中文输出 (例如:输入:1234567 输出:一百二拾三万四千五百六拾七)。
*/import java.util.Scanner;
public class P28 {
private String strNum;
private String strNumChFormat;
private String strNumTemp;
private int intNumLen;
private String strBegin;
public P28(String strNum) {
this.strNum = strNum;
}
/**
*
* 方法描述:判断输入数据的格式
* @param strNum
* @return
*/
public boolean check(String strNum) {
boolean valid = false;
//去掉数字前面的0
if (strNum.substring(0,1).equals("0")){
this.strNum = strNum.substring(1);
}
try {
new Double(strNum);
valid = true;
}
catch (NumberFormatException ex) {
//输入非数字报异常
System.out.println("Bad number format!");
}
return valid;
}
public void init() {
strNumChFormat = "";
intNumLen = strNum.length();
strNumTemp = strNum;
strNumTemp = strNumTemp.replace('1', '一');
strNumTemp = strNumTemp.replace('2', '二');
strNumTemp = strNumTemp.replace('3', '三');
strNumTemp = strNumTemp.replace('4', '四');
strNumTemp = strNumTemp.replace('5', '五');
strNumTemp = strNumTemp.replace('6', '六');
strNumTemp = strNumTemp.replace('7', '七');
strNumTemp = strNumTemp.replace('8', '八');
strNumTemp = strNumTemp.replace('9', '九');
strNumTemp = strNumTemp.replace('0', '零');
strNumTemp = strNumTemp.replace('.', '点');
strBegin = strNumTemp.substring(0, 1);
}
public String readNum() {
if (check(strNum)) {
init();
try {
for (int i = 1, j = 1, k = 1; i < intNumLen; i++) {
if (strNumTemp.charAt(intNumLen - 1) == '零' && i == 1) {
strNumChFormat = "位";
}
else if (strNumTemp.charAt(intNumLen - i) == '零' && j == 1) {
strNumChFormat = "位" + strNumChFormat;
}
else if (strNumTemp.charAt(intNumLen - i) == '点') {
j = 1;
k = 1;
strNumChFormat = strNumTemp.charAt(intNumLen - i) + strNumChFormat;
continue;
}
else {
strNumChFormat = strNumTemp.charAt(intNumLen - i) + strNumChFormat;
}
if (strNumTemp.charAt(intNumLen - i - 1) != '位' &&
strNumTemp.charAt(intNumLen - i - 1) != '零') {
if (j == 1 && i < intNumLen) {
strNumChFormat = '拾' + strNumChFormat;
}
else if (j == 2 && i < intNumLen) {
strNumChFormat = '百' + strNumChFormat;
}
else if (j == 3 && i < intNumLen) {
strNumChFormat = '千' + strNumChFormat;
}
}
if (j == 4 && i < intNumLen) {
j = 0;
}
if (k == 4 && i < intNumLen) {
strNumChFormat = '万' + strNumChFormat;
}
else if (k == 8 && i < intNumLen) {
k = 0;
strNumChFormat = '亿' + strNumChFormat;
}
j++;
k++;
}
while (strNumChFormat.indexOf("位") != -1) {
strNumChFormat = strNumChFormat.replaceAll("位", " ");
}
if (strNumChFormat.substring(0, 2) == "一拾") {
strNumChFormat = strNumChFormat.substring(1, strNumChFormat.length());
}
if (strNumChFormat.indexOf("点") >= 0) {
String rebegin = strNumChFormat.substring(0,
strNumChFormat.indexOf("点"));
String relast = strNumChFormat.substring(strNumChFormat.indexOf("点"),
strNumChFormat.length());
for (int i = 1; i <= relast.length(); i++) {
relast = relast.replaceAll("拾", "");
relast = relast.replaceAll("百", "");
relast = relast.replaceAll("千", "");
relast = relast.replaceAll("万", "");
relast = relast.replaceAll("亿", "");
}
strNumChFormat = rebegin + relast;
}
}
catch (ArrayIndexOutOfBoundsException ex) {
ex.printStackTrace();
}
catch (Exception ex) {
ex.printStackTrace();
}
int off = strNumChFormat.indexOf("点");
strNumChFormat = strBegin + strNumChFormat.substring(0);
}
else {
strNumChFormat = "";
}
return strNumChFormat;
}
public static void main(String args[]) {
while(true){
try {//console输入
Scanner sc = new Scanner(System.in);
String number = sc.nextLine();
//cofiguration输入
//String number = args[0].toString();
System.out.println("The number is: " + number);
P28 P28 = new P28(number);
System.out.println("Output String: " + P28.readNum());
}
catch (Exception ex) {
System.out.println("Please input like that: javac P28 <number>");
}
}
}
}
将一个键盘输入的数字转化成中文输出相关推荐
- java电话键盘字母数字转换_用Java语言将一个键盘输入的数字转化成中文输出
用Java语言将一个键盘输入的数字转化成中文输出 将一个键盘输入的数字转化成中文输出(例如:输入:1234567 输出:一百二拾三万四千五百六拾七)用java语言实现,,请编一段... 将一个键盘输入 ...
- 将一个键盘输入的数字转化成中文输出(例如:输入1234567,输出:一百二拾三万四千五百六拾七)?
public static String getNumberByChinese(String param) {StringBuffer sb = new StringBuffer();char[] a ...
- java输入数字输出汉语_java实现将一个键盘输入的阿拉伯数字转化成中文输出
(例如:输入:1234567 输出:一百二拾三万四千五百六拾七) 用java语言实现,,请编一段程序实现! public class Reader { private String strNu ...
- java数字转中文_Java程序:输入数字转换成中文输出
功能看似简单,但真正实现起来也不是易事 现在贴出代码,欢迎各位幕友提出建议!! package test01; import java.util.Scanner; public class Test ...
- c语言怎么十进制转八进制,C语言:输入一个十进制转化成八进制输出
2018-06-06 根据输入的年月日,输出该日为该年度的第几周.第几天. //根据输入的年月日,输出该日为该年度的第几周.第几天.星期几. //如输入: 2007,12,1 //则输出: 48z,3 ...
- 4、编写程序,根据用户输入的数字转换成相应的中文的大写数字。例如,1.23转换为“壹点贰叁”。
–Python 4.编写程序,根据用户输入的数字转换成相应的中文的大写数字.例如,1.23转换为"壹点贰叁". 问题遇到的现象和发生背景 输入含有0就不会输出 问题相关代码 imp ...
- python将中文数字转化成阿拉伯数字
python将中文数字转化成阿拉伯数字 正则表达式提取文本中的数字 中文转化成阿拉伯数字 完整代码 正则表达式提取文本中的数字 这里演示一下文本中提取中文年份 import re m0 = " ...
- C语言-如何将用户输入的金额数字转换成中文大写?
实战: 如何将用户输入的金额数字转换成中文大写? #include <stdio.h>int main() {// 输入金额转换成大写int money; // 输入数字int money ...
- JavaScript:将输入的一串数字转换成中文大写,最高可写12位(千亿)
将输入的一串数字转换成中文大写,最高可写12位(千亿) 例:输入:10000,输出:壹万 输入:10010,输出:壹万零壹拾 源码: function toChineseBig(num) {// 将接 ...
最新文章
- 2015年你必须学习的编程语言和前端框架
- matlab如何将两张图画在一起,如何在MATLAB里面将两个图画在一起
- 算法(27)-最大系列
- React 入门学习笔记2
- c语言大型软件设计的面向对象_C语言跟C++的根本区别以及特点
- pytorch修改tensor数据类型
- 嵌入式Linux系统编程学习之七gdb调试器
- Lengauer-Tarjan算法--支配树构造(bzoj 2815: [ZJOI2012]灾难)
- 辨别Python中load和loads的小技巧
- 【渝粤教育】电大中专学习指南 (2)作业 题库
- Linux如何下解压windows下的.zip和.rar文件
- 将两个(或多个)Item建立关联 app_field.set_dependent_field和app_field.clear_dependent_fields...
- b站弹幕姬python_自用 Bilibili 弹幕姬 for macOS
- QT QAudioOutput+QIODevice 音频流实时播放
- 单元在整体坐标系下的刚度矩阵
- Matlab使用-norm函数
- typedef使用方法
- python乒乓球比赛规则介绍_乒乓球比赛的简要规则
- 落花人独立,微雨燕双飞——晏几道《临江仙》
- ​资源分享知识付费下载网站源码​