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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

程序需求: 从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三
本人程序代码如下:(学长学姐们 能帮忙优化下吗 ?感觉本程序好繁琐啊)

import java.util.Scanner;

public class Text1 {
        public static void main(String[] args) {
                System.out.println("请输入数字");
                Scanner scanner=new Scanner(System.in);
                int num=scanner.nextInt();
                System.out.println("打印:");
                System.out.println(translate(num));
        }
        /*translate(int num){}函数实现将数字转换成相应的汉字*/
        public static String translate(int num){
                String s=num+"";
                s=s.replace("0", "零");
                s=s.replace("1", "一");
                s=s.replace("2", "二");
                s=s.replace("3", "三");
                s=s.replace("4", "四");
                s=s.replace("5", "五");
                s=s.replace("6", "六");
                s=s.replace("7", "七");
                s=s.replace("8", "八");
                s=s.replace("9", "九");
                return s;
        }
}

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

4 个回复

倒序浏览
下面是我用数组实现的,不知道优化了没有,你先看看
  1. import java.util.Scanner;

  2. public class Text1 {
  3.         public static void main(String[] args) {
  4.                 System.out.println("请输入数字");
  5.                 Scanner scanner=new Scanner(System.in);
  6.                 int num=scanner.nextInt();
  7.                 System.out.println("打印:");
  8.                 System.out.println(translate(num));
  9.         }
  10.         /*translate(int num){}函数实现将数字转换成相应的汉字*/
  11.         public static String translate(int num){
  12.                String[] char1={"0","1","2","3","4","5","6","7","8","9"};
  13.                            String[] char2={"零","一","二","三","四","五","六","七","八","九"};
  14.                
  15.                            for(int i=0;i<char1.length;i++){
  16.                                         if(char1[i].equals(num+"")){
  17.                                                 return char2[i];
  18.                                         }
  19.                                        
  20.                            }
  21.                            return "";
  22.                                
  23.         }
  24. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
学长 写的程序有问题 运行出来结果是空
回复 使用道具 举报
微笑=.一瞬间 发表于 2014-4-9 21:31
学长 写的程序有问题 运行出来结果是空

我运行的没有问题,你在看看是不是那个步骤弄错了我运行的没有问题,你在看看是不是那个步骤弄错了

QQ截图20140410150832.png (139.99 KB, 下载次数: 11)

QQ截图20140410150832.png
回复 使用道具 举报
其实还可以优化的,这样的话代码更少,不知道 再怎样优化,也许可以更少,但再优化我不会了 ,只能到这样的程度。代码如下:/*程序需求: 从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三
*/
import java.util.Scanner;
public class Text1
        {
        public static void main(String[] args)
                        {
                                Scanner input=new Scanner(System.in);
                                int num;
                          do{
                                        System.out.println("请输入数字");
                                        num=input.nextInt();
                                }while(num<0||num>9);//这是判断输入数字的合法,不会比0小,也不比9大
                System.out.println("中文:"+translate(num));
                        }
                public static String translate(int a)
                {
                        // 定义一个数组保存对应的中文字符
                        String arr[]={"零","一","二","三","四","五","六","七","八","九"};
                        return arr[a];
                }
        }

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

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