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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;
import java.util.Scanner;
public class Test1 {
        /**第一题:从键盘接受一个数字,列出该数字的中文表示格式
         * 例如:
         * 键盘输入123,打印出一二三
         * 键盘输入3103,打印出三一零三
         * @param args
         */
        //用于跳出循环的标志
        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);
                                /*//如果没有异常则把整型的数据强制转换成字符型
                                String StrInput = String.valueOf(n);
                               
                                *//**
                                 * 运行中还出现一种情况
                                 * 当第一位是数字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("您输入的格式不符合要求!!请重新输入:");
                        }
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

19 个回复

倒序浏览
安少康 来自手机 中级黑马 2014-7-18 21:19:57
沙发
这写的太细了。
回复 使用道具 举报
给力  这程序写的和作文一样
回复 使用道具 举报
为什么不用查表法呢
回复 使用道具 举报
查表法貌似更简单一些
回复 使用道具 举报
有点长呀
回复 使用道具 举报
import java.util.Scanner;

public class Test2 {

        /**
         * 2、 从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
         *
         */
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                String s = sc.next();
                String a[]={"零","一","二","三","四","五","六","七","八","九"};
                for(int i = 0;i<s.length();i++)
                {
                        int  x = s.charAt(i);
                       
                        System.out.print(a[x-48]);
                }
               

        }

}
回复 使用道具 举报
WJN_YES 发表于 2014-9-27 15:51
import java.util.Scanner;

public class Test2 {

能不能写点注释解释下每个步骤的含义啊
回复 使用道具 举报
rehan 中级黑马 2015-2-11 17:01:06
9#
WJN_YES 发表于 2014-9-27 15:51
import java.util.Scanner;

public class Test2 {

我想问一下,charAt返回不是char类型的吗?怎么变成int了呢?
回复 使用道具 举报
package com.itheima;

import java.util.Scanner;

/**
* 第4题:从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
*
* */

public class Test4 {

        private static Scanner input;
        public static void main(String[] args) {
                System.out.println("请输入阿拉伯数字(限5位),程序将自动转换为相应汉字");
                input = new Scanner(System.in);
                String come = input.next();
                char[] array = come.toCharArray();
                int[] change = new int[array.length];
                for (int i = 0; i < array.length; i++) {
                        change[i] = (int)array[i] - 48;
                }
                fun(change);
        }
        public static void fun(int[] tab){
                for (int i = 0; i < tab.length; i++) {
                        switch(tab[i]){
                                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:System.out.println("输入错误,程序结束");return;
                        }
                }
        }
       
}
回复 使用道具 举报
能不能写点注释解释下每个步骤的含义啊
回复 使用道具 举报
  1. public static void intParse() {
  2.         //接收键盘输入
  3.         Scanner sc = new Scanner(System.in);
  4.         //将键盘输入的字符串转换成byte数组
  5.         byte [] indexs = sc.nextLine().getBytes();
  6.         //创建列表
  7.         String [] parsevalue = {"零","一","二","三","四","五","六","七","八","九"};
  8.         //遍历byte数组(因为字符'0'转换成byte之后是48,所以要减去48才能得到角标)
  9.         for(byte index: indexs){
  10.                 //判断输入的是否为数字,如果不是数字就抛出异常结束程序
  11.                 if((index-48)>9||(index-48)<0)
  12.                         throw new RuntimeException("输入的数字有误");
  13.                 //如果是数字,查表打印出对应的汉字
  14.                 else
  15.                         System.out.print(parsevalue[index-48]);
  16.         }
  17.        
  18. }
复制代码
回复 使用道具 举报 1 0
方法2
用双列集合
public static void intParse() {
        //接收键盘输入
        Scanner sc = new Scanner(System.in);
        //把键盘输入的字符串变成字符数组
        char [] keys = sc.nextLine().toCharArray();
        //创建双列集合map,让输入的字符与汉字大写相关联,用来查表。
        Map<Character,String> parsevalue =
                        new HashMap<Character,String>();
        //向集合传入元素
        parsevalue.put('0', "零");
        parsevalue.put('1', "一");
        parsevalue.put('2', "二");
        parsevalue.put('3', "三");
        parsevalue.put('4', "四");
        parsevalue.put('5', "五");
        parsevalue.put('6', "六");
        parsevalue.put('7', "七");
        parsevalue.put('8', "八");
        parsevalue.put('9', "九");
        //遍历char数组
        for(char key: keys){
                //判断输入的是否为数字,如果不为数字则抛出异常结束程序
                if(key<'0'||key>'9')
                        throw new RuntimeException("请输入数字");
                //通过key打印出对应的汉字
                else
                        System.out.print(parsevalue.get(key));
        }
}
回复 使用道具 举报
请楼主明鉴

9A80909B-CDC2-4064-84F5-DC0DE94D0659.png (130.39 KB, 下载次数: 249)

9A80909B-CDC2-4064-84F5-DC0DE94D0659.png
回复 使用道具 举报
  1. import java.io.*;
  2. class Demo
  3. {
  4.         public static void main(String[] args)throws IOException
  5.         {
  6.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  7.                 String line = null;
  8.                 char[] chs = {'零','一','二','三','四','五','六','七','八','九'};
  9.                 while((line=bufr.readLine())!=null)
  10.                 {
  11.                         if("over".equals(line))
  12.                                 break;
  13.                         char[] arr = line.toCharArray();
  14.                         for(int x=0;x<arr.length;x++)
  15.                         {
  16.                                 int num = Integer.parseInt(arr[x]+"");
  17.                                 System.out.print(chs[num]);
  18.                         }
  19.                         System.out.println();
  20.                 }
  21.                 bufr.close();
  22.         }       
  23. }
复制代码

点评

int num = Integer.parseInt(arr[x]+""); 够叼  发表于 2015-8-21 16:44
回复 使用道具 举报
  1. public static void main(String[] args) throws IOException {
  2.                 Scanner sc = new Scanner(System.in);
  3.                 char [] ch = sc.nextLine().toCharArray();
  4.                 String [] s = {"零","一","二","三","四","五"};
  5.                        
  6.                         for(int x = 0 ; x < ch.length ; x++){
  7.                                 int num = Integer.parseInt(ch[x]+"");
  8.                                 System.out.print(s[num]);
  9.                         }
  10.         }
复制代码
回复 使用道具 举报
都是神呢 !怎么都不懂
回复 使用道具 举报
代码都不错
回复 使用道具 举报
package com.kkk;

import java.util.Scanner;

public class Demo2 {
        //键盘录入1,2,3打印出相对应的一,二,三
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
        for(;;){
                System.out.println("请输入0-5的整数");
                int s = sc.nextInt();
                String[] arr = {"零","一","二","三","四","五"};
               
                        for (int i = 0; i < arr.length; i++) {
                        if(i == s){
                        System.out.println(arr[i]);
                                }
                        }
                }
        }

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马