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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package com.itheima;
  2. /**
  3. * 第三题:从键盘接受一个数字,列出该数字的中文表示格式,
  4. * 例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
  5. * @author Machel
  6. */
  7. import java.io.*;
  8. public class Test3{
  9.         public static void main(String[] args) throws Exception
  10.         {
  11.                 //读取键盘录入
  12.                 BufferedReader bufr =
  13.                         new BufferedReader(new InputStreamReader(System.in));
  14.                 String line;
  15.                 while((line = bufr.readLine())!=null)
  16.                 {
  17.                         String str = changeStr(line);
  18.                         System.out.println(str);
  19.                         //当键入over时,结束程序
  20.                         if ("over".equals(line))
  21.                                 break;
  22.                 }
  23.                 bufr.close();
  24.         }
  25.         //定义一个changeStr()方法,用以转换阿拉伯数字与中文数字
  26.         public static String changeStr(String str)
  27.         {
  28.                 char[] num = new char[]{'0','1','2','3','4','5',
  29.                                 '6','7','8','9'};
  30.                 char[] chinese = new char[]{'零','一','二','三','四','五',
  31.                                 '六','七','八','九'};
  32.                 char[] strArr = str.toCharArray();
  33.                 for(int i=0;i<strArr.length;i++)
  34.                 {
  35.                         for (int j=0; j<=9; j++)
  36.                         {
  37.                                 if (strArr[i]==num[j])
  38.                                 {
  39.                                         strArr[i] = chinese[j];
  40.                                 }
  41.                         }
  42.                 }
  43.                 str = String.copyValueOf(strArr);
  44.                 return str;
  45.         }
  46. }
复制代码

9 个回复

倒序浏览
很好,支持下
回复 使用道具 举报
看看学习一下
回复 使用道具 举报
既然转换的是数字干嘛还循环判断他是那个数字
直接输出对数字对应下标不就好了
我吧你第二个for改成
  1.                         //如果字符是0-9之间就转换
  2.                         if(strArr[i]>='0' && strArr[i]<='9'){
  3.                                 strArr[i] = chinese[strArr[i]-'0'];
  4.                         }
复制代码

char[] num = new char[]{'0','1','2','3','4','5',
                                '6','7','8','9'};这句就没必要了
回复 使用道具 举报
半月 发表于 2015-6-26 17:37
既然转换的是数字干嘛还循环判断他是那个数字
直接输出对数字对应下标不就好了
我吧你第二个for改成

受教了。。
回复 使用道具 举报
学习了。。。。
回复 使用道具 举报
很好,学习学习
回复 使用道具 举报
很好学习了,赞一个!
回复 使用道具 举报
涨姿势了
回复 使用道具 举报
挺好                                
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马