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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李洋- 中级黑马   /  2013-12-17 15:08  /  1274 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 神马都是浮云

查看全部评分

6 个回复

倒序浏览
FFF 金牌黑马 2013-12-17 16:03:02
沙发
太简单了。没啥挑战性。
你可以用System.in接收数据。再String转char再用查表法。好简单的呢~
回复 使用道具 举报
  1. public class Demo5
  2. {
  3.     public static void main(String[] args) throws IOException
  4.     {
  5.             InputStream in=System.in;
  6.             BufferedReader br=new BufferedReader(new InputStreamReader(in));
  7.             BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
  8.             String line=null;
  9.             char[] ch={'0','1','2','3','4','5','6','7','8','9'};
  10.             char[] ch2={'零','壹','贰','叁','肆','伍','陆','柒','捌'};
  11.             while((line=br.readLine())!=null)
  12.             {
  13.              if("over".equals(line))
  14.              {
  15.                      break;
  16.              }
  17.              bw.write(show(line,ch,ch2));
  18.              bw.flush();
  19.             
  20.             }
  21.             bw.close();
  22.             br.close();
  23.     }
  24.    
  25.     public static char[] show(String line,char[] ch,char[] ch2)
  26.     {
  27.        char[] s=line.toCharArray();
  28.        for(int x=0;x<s.length;x++)
  29.        {
  30.               for(int y=0;y<ch.length;y++)
  31.               {
  32.                       if(s[x]==ch[y])
  33.                               s[x]=ch2[y];
  34.               }
  35.        }
  36.        return s;
  37.     }  
  38. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
FFF 发表于 2013-12-17 16:03
太简单了。没啥挑战性。
你可以用System.in接收数据。再String转char再用查表法。好简单的呢~ ...

那你帮忙给个代码演示呗
回复 使用道具 举报
我是在控制台输入的,你可以参考一下!!没有判断其他异常,只能输入数字,负数也可以

  1. import java.util.Scanner;

  2. public class TestOutput{
  3.         /*定义两个字符型数组,一个是数字,一个数汉字,
  4.          * 注意:数字要对应汉字的下角标,这样好通过数组的index赋值*/
  5.         char [] cha  =  {'0','1','2','3','4','5','6','7','8','9','-'};
  6.         char [] chin = {'零','一','二','三','四','五','六','七','八','九','负'};
  7.         public void transition(String str)//定义方法,接收传过来的数值字符串
  8.         {
  9.                 /*//自定义一个空的字符型数组,用于装转换好的汉字*/
  10.                 char[] chs = new char[str.length()];
  11.                 for (int i = 0; i < str.length(); i++)//这一步是循环你输入的数字
  12.                 {
  13.                         for (int j = 0; j < cha.length; j++) {//这是循环是你定义好的字符数组cha[]
  14.                                 if(str.charAt(i)==cha[j])//判断你输入的书否等于其中的
  15.                                 {
  16.                                         chs[i] += chin[j];//如果等于,就将汉字的数组相对的索引赋值
  17.                                 }                     //这里就体现了数字要对应汉字的下角标
  18.                         }
  19.                 }
  20.                 System.out.println(chs);
  21. }
  22.         public void inistal() {
  23.                 Scanner s = new Scanner(System.in);
  24.                 System.out.println("请输入数字:");
  25.                 String str = s.next();
  26.                 transition(str);//调用上面的方法
  27.         }

  28. public static void main(String[]args)
  29. {
  30.         TestOutput o = new TestOutput();
  31.         o.inistal();
  32. }

  33. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
看到答案懂了,{:soso_e128:}每天看看问题收集里面的答案
回复 使用道具 举报
张鹏 中级黑马 2013-12-18 23:58:07
7#
  1. import java.util.Scanner;

  2. public class Test
  3. {
  4.    
  5.     public static void main(String[] args)
  6.     {
  7.         char[] chars = { '零', '一', '二', '三', '四', '五', '六', '七', '八', '九' };
  8.         
  9.         Scanner inputScanner = new Scanner(System.in);
  10.         System.out.println("请输入数字:");
  11.         String string = inputScanner.next();
  12.         if (!string.matches("\\d+"))
  13.         {
  14.             System.out.println("不合法的数字!");
  15.         } else
  16.         {
  17.             for (int i = 0, le = string.length(); i < le; i++)
  18.             {
  19.                 System.out.print(chars[string.charAt(i) - 48]);
  20.             }
  21.         }
  22.     }
  23.    
  24. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 25分,只是一个开始。并不是结束。.

查看全部评分

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