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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;
/*
* 从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三;键盘输入3013,打印出三一零三
* */
import java.util.*;
public class Test4
{
        public static void main(String[] args)
        {
                printConversion();
        }
        //定义一个方法将输入的阿拉伯数以中文格式输出
        public static void printConversion()
        {
                Scanner in=new Scanner(System.in);
                sop("输入:");
                int num=in.nextInt();
                sop("输出:"+numConversion(num));
                in.close();
        }
        //定义一个阿拉伯数字转换为中文数字的函数numConversion()
        public static String numConversion(int n)
        {
                char[] ch=new char[]{'零','一','二','三','四','五','六','七','八','九'};
                StringBuffer sb=new StringBuffer();
                while(n!=0)
                {
                        sb.append(ch[n%10]);
                        n=(n-n%10)/10;
                }
                sb.reverse();
                return sb.toString();
        }
        //定义一个简化输出方法
        public static void sop(Object obj)
        {
                System.out.print(obj);
        }
}

10 个回复

倒序浏览
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;

  3. public class Demo {
  4.         public static void main(String[] args) throws Exception {
  5.                 System.out.println("请输入一个数字:");
  6.                 //键盘录入,在这里使用BufferedReader是为了使用读一行的方法
  7.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  8.                 String line = null;
  9.                 while((line=bufr.readLine())!=null){
  10.                         //因为需求是键盘接受一个数字那么我们可以用正则表达式来限制录入的数据以确保录入的就是数字
  11.                         if(line.matches("\\d+")){
  12.                                 //循环取出每一个字符并对每个字符进行选择返回对应的汉字形式
  13.                                 for(int x=0;x<line.length();x++){
  14.                                         switch(line.charAt(x)){
  15.                                                 case '0':
  16.                                                         System.out.print("零");
  17.                                                         break;
  18.                                                 case '1':
  19.                                                         System.out.print("一");
  20.                                                         break;
  21.                                                 case '2':
  22.                                                         System.out.print("二");
  23.                                                         break;
  24.                                                 case '3':
  25.                                                         System.out.print("三");
  26.                                                         break;
  27.                                                 case '4':
  28.                                                         System.out.print("四");
  29.                                                         break;
  30.                                                 case '5':
  31.                                                         System.out.print("五");
  32.                                                         break;
  33.                                                 case '6':
  34.                                                         System.out.print("六");
  35.                                                         break;
  36.                                                 case '7':
  37.                                                         System.out.print("七");
  38.                                                         break;
  39.                                                 case '8':
  40.                                                         System.out.print("八");
  41.                                                         break;
  42.                                                 case '9':
  43.                                                         System.out.print("九");
  44.                                                         break;
  45.                                         }
  46.                                 }
  47.                         }else
  48.                                 //对不匹配的情况进行说明
  49.                                 System.out.print("请保证输入的是一个数字");
  50.                         System.out.println();
  51.                 }
  52.                 //关闭资源
  53.                 bufr.close();
  54.         }
  55. }
复制代码
回复 使用道具 举报
楼上的有点麻烦,简单点就查表吧,和毕老师的进制转换同理。
回复 使用道具 举报
帅哥哥 来自手机 高级黑马 2014-6-5 00:53:29
板凳
基础测试题的说~_~
回复 使用道具 举报
  1. package 演示;

  2. import java.util.Scanner;

  3. public class S{
  4.         public static void main(String[] args) {
  5.                 String[] s={"零 " ,"一","二","三","四","五","六","七","八","九"};
  6.                 Scanner s1=new Scanner(System.in);
  7.                 String str=s1.nextLine();
  8.                 for (int i = 0; i < str.length(); i++) {
  9.                         int c= str.charAt(i)-'0';//提取键盘输入字符串中的每一个字符再转换成阿拉伯数字
  10.                         if(c>=0&& c<10){//如果阿拉伯数字在0~9就输出s中相应c位置的元素
  11.                                 System.out.print(s[c]);
  12.                         }else{
  13.                                 System.out.print("不在范围内!!"+"\n");
  14.                         }
  15.                        
  16.                 }
  17.         }
  18. }
复制代码


回复 使用道具 举报

减0是为什么,试了一下,不减程序还做不出来,但是不知道为什么
回复 使用道具 举报
弱弱的问一句直接switch语句不行吗?
回复 使用道具 举报
lanzy1989 发表于 2014-9-11 11:26
弱弱的问一句直接switch语句不行吗?

用switch太长了程序 用查表法更简单
回复 使用道具 举报
package testfor;
/*
* 2、 从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,
* 打印出一二三;键盘输入3103,打印出三一零三。
* 分析:根据打进去的数组,转换成中文,可以利用键值法,一个键对应一个值,
* 键盘输入的是string类型的,将其分割成一个一个数,
* 再把这些数一一转成值,把这些值存入数组中,打印出来
*
*
*/
import java.util.*;
public class Test2 {
                public static void main(String[] args) {
                        String s= new Scanner(System.in).nextLine();
                        //System.out.println(s.charAt(2));
                        Map<String,String> map=new HashMap<String,String>();
                        map.put("1", "一");
                        map.put("2", "二");
                        map.put("3", "三");
                        map.put("4", "四");
                        map.put("5", "五");
                        map.put("6", "六");
                        map.put("7", "七");
                        map.put("8", "八");
                        map.put("9", "九");
                        map.put("0", "零");
                        String sec=new String();
                        for(int i=0;i<s.length();i++){
                                sec+=map.get(s.charAt(i)+"");
                        }
                        System.out.println(sec);
                       
                        }
}


回复 使用道具 举报 1 0
package cn.itcast.test1;

import java.util.Scanner;

public class Test {
public static void main(String[] args) {
        //定义一个数组
        char [] chs ={'零','一','二','三','四','五','六','七','八','九','十'};
        Scanner sc=new Scanner(System.in);
        String line =sc.nextLine();
        char [] ch=line.toCharArray();
        StringBuffer sb=new StringBuffer();
        //System.out.println((int)'0');
        for (char c:ch){
                sb.append(chs[((int) c-48)]);
        }
        System.out.println(sb.toString());
}
}
回复 使用道具 举报
懂能懂,就是不知道咋下手
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马