键盘录入一个大于-1小于1000的正整数num,将该整数转换成汉字在控制台输出,例:输入115, * 输出 一百一十五
请输入一个0到999的整数
10
一十
99
九十九
100
一百
521
五百二十一
509
五百九
590
五百九十
999
九百九十九
1234
滴~滴~滴。。。你输入的数字有误!
程序有待完善,求大神补码
十位是0,个位百位不是0的时候,该怎么写?
package cn.itcast.homework;
import java.util.Scanner;
/**
* 1. 键盘录入一个大于-1小于1000的正整数num,将该整数转换成汉字在控制台输出,转换的要求如下:
* 如num小于10,直接将num转成对应的汉字,例:输入5,转成 五 如num大于9小于100,将数字转成对应的汉字并在十位数后面带单位”十”,
* 例:输入15, 输出 一十五 如num大于99小于1000,将数字转成对应的汉字,并在十位数后面带单位”十”,百位数后面带单位”百”, 例:输入115,
* 输出 一百一十五 2. 除非输入数字不在规定的范围,否则可以一直进行输入转换 注:不考虑0
*/
public class Test05 {
public static void main(String[] args) {
function();
}
private static void function() {
System.out.println("请输入一个0到999的整数");
String[] geStr = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九","" };
String[] shiStr = {"","一十", "二十", "三十", "四十", "五十", "六十", "七十", "八十", "九十","零" };
String[] baiStr = {"一百", "二百", "三百", "四百", "五百", "六百", "七百", "八百", "九百"};
while (true) {
Scanner sc = new Scanner(System.in);
int inputNum = sc.nextInt();
if (inputNum < 10 && inputNum >= 0) {
System.out.println(geStr[inputNum]);
//break;
} else if (inputNum >= 10 && inputNum < 100) {
String shi = shiStr[inputNum/10];
int ge = inputNum%10==0?10:inputNum%10;
System.out.println(shi+geStr[ge]);
}else if (inputNum >= 100 && inputNum < 1000) {
String bai = baiStr[inputNum/100-1];
int shi = inputNum/10%10;
int ge = inputNum%10==0?10:inputNum%10;
System.out.println(bai+shiStr[shi]+geStr[ge]);
}else{
System.out.println("滴~滴~滴。。。你输入的数字有误!");
break;
}
}
}
}
|
|