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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 怪学究 于 2015-5-3 16:16 编辑

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

我还没做出来,求不同的做法。。。

14 个回复

倒序浏览
本帖最后由 怪学究 于 2015-5-3 16:14 编辑


/*
题目二: 从键盘接受一个数字,列出该数字的中文表示格式

         例如: 键盘输入123,打印出一二三
                键盘输入3103,打印出三一零三

                需求:1.从使用Scanner从键盘接收一个数字
                          2.建立数组
*/
import java.util.Scanner;
class Demo
{
        public static void main(String[] args)
        {
                String [] arr = {"零","一","二","三","四","五","六","七","八","九"};
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个阿拉伯数字n:");
                int n = sc.nextInt();int p=0;
                for (;(n*10)/10 != 0 ;n/=10)
                {
                        int m = n%1;
                       System.out.print(arr[m]);                     
                        
                }
                System.out.println();
        }
}
回复 使用道具 举报
:L没做出来 找不到思路
回复 使用道具 举报
/*题目二: 从键盘接受一个数字,列出该数字的中文表示格式
              例如: 键盘输入123,打印出一二三
              键盘输入3103,打印出三一零三*/
import java.io.*;
class  test2
{
        private String[] nums={"零","一","二","三","四","五","六","七","八","九"};
        public String getNum()throws IOException{
                BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
                System.out.println("请输入一个数字:");
                return br.readLine();
                }

        public void changeNum(String s){
                char[] ch=s.toCharArray();
        for(char c:ch)
                {
                System.out.print(nums[Integer.parseInt(c+"")]);
                }
                System.out.println();
                }

        public static void main(String[] args) throws IOException
        {
                test2 t=new test2();
                String s=t.getNum();
                t.changeNum(s);
        }
}
回复 使用道具 举报
木有做........
回复 使用道具 举报
登新丝路中
回复 使用道具 举报
定义一个数组 把大写的存进去
然后 判断键盘输入的是不是阿拉伯数字如果是0-9 就把数组打印出来例如arr[i];
如果不是 就打印输入错误
回复 使用道具 举报
研究了一下,可能有点麻烦,可以参考一下
回复 使用道具 举报
import java.util.Scanner; class  Test1 {         public static void main(String[] args)          {                 int x = 0;                 String[] str = {"零","一","二","三","四","五","六","七","八","九"};                 Scanner sc = new Scanner(System.in);                 sop("请输入一个阿拉伯数字:");                 try{                                 int n = sc.nextInt();          //得到输入int型数据                                 String s =String.valueOf(n);   //将输入的int型数据转为String类型                                 while(x<s.length())                          //进入循环                                 {                                         char a = s.charAt(x);     //得到String数据的每一位(为char类型)                                         System.out.print(str[Integer.parseInt(String.valueOf(a))]);                                                   //将char类型转为String类型再转为Int类型并作为角标获得数组str中元素并打印                                         x++;                                 }                                 }                 catch(Exception e)                         {                                 sop("您输入的数据类型错误,请重新运行后重新输入");//报错信息                                          }                          }         public static void sop(Object obj)         {                 System.out.println(obj);       //换行打印方法         }         }
回复 使用道具 举报
还在做呢。
回复 使用道具 举报
抱歉上面乱了点,和三楼的基本思想差不多
import java.util.Scanner;
class  Test1
{
        public static void main(String[] args)
        {
                int x = 0;
                String[] str = {"零","一","二","三","四","五","六","七","八","九"};
                Scanner sc = new Scanner(System.in);
                sop("请输入一个阿拉伯数字:");
                try{
                                int n = sc.nextInt();          //得到输入int型数据
                                String s =String.valueOf(n);   //将输入的int型数据转为String类型
                                while(x<s.length())                          //进入循环
                                {
                                        char a = s.charAt(x);     //得到String数据的每一位(为char类型)
                                        System.out.print(str[Integer.parseInt(String.valueOf(a))]);  
                                                //将char类型转为String类型再转为Int类型并作为角标获得数组str中元素并打印
                                        x++;
                                }       
                        }
                catch(Exception e)
                        {
                                sop("您输入的数据类型错误,请重新运行后重新输入");//报错信息
               
                        }
               
        }
        public static void sop(Object obj)
        {
                System.out.println(obj);       //换行打印方法
        }       
}
回复 使用道具 举报
貌似基础班还没学到
回复 使用道具 举报
从键盘接受一个数字,列出该数字的中文表示格式
              例如: 键盘输入123,打印出一二三
              键盘输入3103,打印出三一零三
import java.util.Scanner;
public class LunTanLianXi2 {
        public static void main(String[] args) {
                Scanner sr = new Scanner(System.in);
                System.out.println("输入一个阿拉伯数字,即可得到中文的表现形式:");
            System.out.println();       
                String x = sr.next();
               
                char arr [] = {'零','一','二','三','四','五','六','七','八','九'};
                String result = "";
                for (int i = 0; i < x.length(); i++) {
                        char charAt = x.charAt(i);
                        int index = Integer.parseInt(charAt+"");
                        result += arr[index];
                }
                System.out.println("结果:"+result);
        }

}

点评

做的好  发表于 2015-5-5 21:06
回复 使用道具 举报
我这样写的
  1. public class HanZi {
  2.         public static void main(String[] args) {
  3.                 Scanner sc = new Scanner(System.in);
  4.                 System.out.println("请输入数字");
  5.                 String s = sc.next();// s接收键盘输入
  6.                 prt(s);
  7.         }

  8.         private static void prt(String s) {
  9.                 // 建汉字库
  10.                 // ASCII码表0为48,9为57
  11.                 String[] ss = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九", };
  12.                 char[] ch = s.toCharArray();
  13.                 StringBuffer stb = new StringBuffer();
  14.                 for (int i = 0; i < ch.length; i++) {
  15.                         int ii = ch[i];
  16.                         // 如果输入的不是汉字,则提示,然后退出
  17.                         if (ii < 48 || ii > 57) {
  18.                                 System.out.println("请重新运行输入数字(0~9)");
  19.                                 break;
  20.                         }
  21.                         stb.append(ss[ii - 48]);// 将对应的汉字添加进stb
  22.                 }
  23.                 System.out.println(stb);
  24.         }
  25. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马