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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

从键盘接受一个数字,列出该数字的中文表示格式,
例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
package com.intheima;
import java.util.Scanner;

public class Test3 {
          //用于跳出循环的标志
    private static boolean isrun=true;
    //提示字符数组
    private static String[] str = null;
    public static void main(String[] args) {
            // TODO Auto-generated method stub
            //初始化提示数组
            str = new String[]{"提示:","打入字符串EXIT或exit则退出改程序!"};
            //作为while循环输出提示的终止条件和要输出的字符数组的下标
            int i = 0;
            //循环输出提示
            while(str.length != i){
               //输出提示语句,同时把i的值增加
               System.out.println(str[i++].toString());
            }
            //循环接收并处理输入的字符
            while(isrun) {
                    //初始化接收键盘输入的scanner变量
                    Scanner userInput = new Scanner(System.in);
                    //获取用户输入的字符串
                    String input = userInput.nextLine();
                    //该异常会在输入的不是数字的情况下进入catch异常处理
                    try {
                            //将字符型变量强制转换成int型,如果字符型变量不是数字则会抛出异常
                            @SuppressWarnings("unused")
                            int n = Integer.valueOf(input);
                            /**
                             * 运行中还出现一种情况
                             * 当第一位是数字0的情况下
                             *//*
                            if(input.length()-StrInput.length() > 0)
                            {
                                    
                            }*/
                            //输出输入的数据
                            System.out.print("您输入的数字是:" + input + "\n" + "处理后的结果是:");
                            //进入循环来将数字转换成数字字符,以输入的数据的长度为for循环的结束条件
                            for(int j = 0; j < input.length(); j++) {
                                //将输入的数据取子串,一次取一个,然后在进行判断转换成想要的结果
                                switch (Integer.valueOf(input.substring(j, j+1))) {
                                    //判断该数字是0的话转换成零
                                    case 0: {
                                        System.out.print("零");
                                        break;
                                     }
                                     //同上
                                     case 1:{        
                                        System.out.print("一");
                                        break;
                                     }
                                     //同上
                                     case 2: {      
                                        System.out.print("二");
                                        break;
                                     }
                                     //同上
                                     case 3: {      
                                            System.out.print("三");
                                        break;
                                     }
                                     //同上
                                     case 4: {        
                                        System.out.print("四");
                                        break;
                                     }
                                     //同上
                                     case 5: {      
                                        System.out.print("五");
                                        break;
                                     }
                                     //同上
                                     case 6: {
                                        System.out.print("六");
                                        break;
                                     }
                                     //同上
                                     case 7: {        
                                        System.out.print("七");
                                        break;
                                     }
                                     //同上
                                     case 8: {      
                                        System.out.print("八");
                                        break;
                                     }
                                     //同上
                                     case 9: {        
                                        System.out.print("九");
                                        break;
                                     }
                                     default:
                                     break;
                                    }
                            }
                            //这句话用于换行,作用是防止下次输入和上次分不清楚
                            System.out.println();
                    //进入异常处理,也就是用户输入的一定有字母
                    } catch (Exception e) {
                            //判断用户的意思,如果是退出的话就退出
                            if(input.toString().toLowerCase().equals("exit")) {
                                    isrun=false;
                                    break;
                            }
                            //如果不是退出,那就是用户输入有误或者是不知道规则
                            else {
                                    System.out.println("您输入的格式不符合要求!!请重新输入:");
                            }
                     }
            }
    }


}

3 个回复

倒序浏览
要不要这么麻烦?
直接定义个数组,查表法,就行了
  1. import java.util.Scanner;
  2. public class Test {
  3.         public static void main(String[] args) {
  4.                 Scanner s = new Scanner(System.in);
  5.                 char[] ch = {'零','一','二','三','四','五','六','七','八','九'};
  6.                 String value = s.next();
  7.                 char[] c = value.toCharArray();
  8.                 for(int x = 0;x<c.length;x++){
  9.                         String str = c[x]+"";
  10.                         int num = new Integer(str);
  11.                         System.out.print(ch[num]);
  12.                 }
  13.                 s.close();
  14.         }
  15. }
复制代码
回复 使用道具 举报
楼上的简单多了,那天我就一直没想明白,后来上网查下,可以把字符串转成字符串数组然后遍历,再把得到的数给数组,就出来对应的了,挺好,java的目的就是简单方便
回复 使用道具 举报
根本不用这么麻烦的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马