黑马程序员技术交流社区

标题: 键盘录入一个大于0小于1000的整数,转化为汉字在控制台输出 [打印本页]

作者: 18001105207    时间: 2016-9-17 22:56
标题: 键盘录入一个大于0小于1000的整数,转化为汉字在控制台输出
package test01;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Test01 {

        public static void main(String[] args) {

                Map<Integer,Character> hm = new HashMap<Integer,Character>();
                hm.put(1, '一');
                hm.put(2, '二');
                hm.put(3, '三');
                hm.put(4, '四');
                hm.put(5, '五');
                hm.put(6, '六');
                hm.put(7, '七');
                hm.put(8, '八');
                hm.put(9, '九');
                Scanner sc = new Scanner(System.in);
                while(true) {
                        System.out.println("请输入要转化的数字(1-999):");
                        int a = sc.nextInt();
                        if(a>0 && a<10) {
                                System.out.println(hm.get(a));
                        }
                        else if(a>9 && a<100) {
                                int ge = a%10;
                                int bai = a/10%10;
                                if(ge == 0) {
                                        System.out.println(hm.get(bai)+"十");
                                }else{
                                String str = hm.get(bai)+"十"+hm.get(ge);
                                System.out.println(str);
                                }
                        }
                        else if (a>99 && a< 1000) {
                                int ge = a%10;
                                int shi = a/10%10;
                                int bai = a/10/10%10;
                                if(shi == 0 && ge != 0) {
                                        String str = hm.get(bai)+"百"+"零"+hm.get(ge);
                                        System.out.println(str);
                                }
                                else if(shi != 0 && ge == 0) {
                                        String str = hm.get(bai)+"百"+hm.get(shi)+"十";
                                        System.out.println(str);
                                }
                                else if(shi == 0 && ge == 0) {
                                        String str = hm.get(bai)+"百";
                                        System.out.println(str);
                                }
                                else{
                                String str = hm.get(bai)+"百"+hm.get(shi)+"十"+hm.get(ge);
                                System.out.println(str);
                                }
                        }
                        else {
                                System.exit(0);
                               
                        }
                }
        }

}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2