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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

首先贴代码
package jichuceshi;

import java.util.Scanner;

/*
* 要求:        1、 从键盘接受一个数字,列出该数字的中文表示格式,
*                 例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
*
* 思路:       
*                 1、从键盘录入字符串格式的数字
*                 2、把键盘录入的字符串拆成字符数组
*                 3、遍历得到的字符数组,用switch语句进行选择,选择对应的中文数字
*                 4、中文数字用StringBuffer存储
*                 5、将StringBuffer转换成String输出
*/
public class Test1 {
        public static void main(String[] args) {
                // 输出提示语句
                System.out.println("请输入您要转换的数字:");

                // 建立键盘录入对象
                Scanner sc = new Scanner(System.in);

                // 建立变量存储键盘录入值
                String temp = sc.nextLine();

                // 将键盘录入的String拆成字符数组
                char[] arrShu = temp.toCharArray();

                // 建立StringBuffer对象存储中文数字
                StringBuffer sb = new StringBuffer();

                // 建立for循环,循环判断switch语句
                for (int x = 0; x < arrShu.length; x++) {

                        // 建立switch选择语句判断输入的字符是什么
                        switch (arrShu[x]) {
                        case '0':
                                sb.append('零');
                                break;
                        case '1':
                                sb.append('一');
                                break;
                        case '2':
                                sb.append('二');
                                break;
                        case '3':
                                sb.append('三');
                                break;
                        case '4':
                                sb.append('四');
                                break;
                        case '5':
                                sb.append('五');
                                break;
                        case '6':
                                sb.append('六');
                                break;
                        case '7':
                                sb.append('七');
                                break;
                        case '8':
                                sb.append('八');
                                break;
                        case '9':
                                sb.append('九');
                                break;

                        // 如果数据有误,输出提示语句
                        default:
                                sb.append(" 这个数据有误! ");
                                break;
                        }
                }

                // 将StringBuffer转换成String类型输出
                System.out.println("转换后的数字为:");
                System.out.println(sb.toString());
        }
}

以下是运行效果图
没有填入非法数据的结果


含有非法数据的结果


7 个回复

倒序浏览
厉害,不得不佩服你啊

点评

听说,有更好的方法。。。  发表于 2015-4-28 23:03
回复 使用道具 举报
大哥,用查表法,不是switch啊

点评

不懂。。。。教一下啊。。。不用代码,说说思路就好。。跪谢。。。。。  发表于 2015-4-28 22:53
回复 使用道具 举报
你这个是学到String类了?

点评

对。。  发表于 2015-4-28 22:56
回复 使用道具 举报
major2015 发表于 2015-4-28 08:58
大哥,用查表法,不是switch啊
  1. import java.util.Scanner;

  2. public class Test1 {

  3.         public static void main(String[] args) {
  4.                 char[] chs = { '零', '一', '二', '三', '四', '五', '六', '七', '八', '九' };
  5.                 while (true) {
  6.                         System.out.print("输入数字:");
  7.                         Scanner sc = new Scanner(System.in);
  8.                         try {
  9.                                 int in = Integer.parseInt(sc.next());
  10.                                 char[] des = (in + "").toCharArray();
  11.                                 StringBuilder sb = new StringBuilder();
  12.                                 for (int i = 0; i < des.length; i++) {
  13.                                         sb = sb.append(chs[(des[i] - 48)]);
  14.                                 }
  15.                                 System.out.println(sb);
  16.                         } catch (NumberFormatException e) {
  17.                                 throw new RuntimeException("非纯数字或数字过大");
  18.                         }
  19.                 }
  20.         }
  21. }
复制代码


思路就是把你第3步的思路,switch改为char数组,从数组中取对应中文字符
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马