A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

键盘录入一个大于-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;
                        }
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马