不好意思,忘记放题目上来啊!题目是:
将从电脑上输入的字符(少于一亿)转化成中文输出?
(例如  输入:1234567  程序  输出:一百二十三万四千五百六十七)
用JAVA实现

解决方案 »

  1.   

    我编了一个,请指教!!class Test{
        public static void main(String[] args){
            // 记录映射关系
        char[] chars = new char[10];
            char[0] = '一';
            ……;
            //输入缓冲区
            byte[] arr = new byte[100];
            System.in.read(arr);
            for(int i = 0 ; arr[i] != '/n' ; i ++){
                //字符转化为字符串
          String temp = String.valueOf(arr[i]);
          //输出
                System.out.print(char[Integer.parseInt(temp)]);
            } 
        }
    }
      

  2.   

    http://www.qq166.com/vip.htm?QQ=855965
      

  3.   

    刚在【ChinaJavaWorld.com技术论坛】 里面看到了,现在忘记在哪里了。有人坐了里面写了很长的代码。自己可以去找找看。说不定那贴还是你发的哦
      

  4.   

    确实比较麻烦,下面是我写的,各位看看如何?
    import java.io.*;
    class Test{  public static void main(String args[]){ 
     String str1[]={"","十","百","千","万","十","百","千"};
    String str2[]={"零","一","二","三","四","五","六","七","八","九"};
     System.out.println("Please input a number less then 100000000");
     try{
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          String s,s1="",s2="",s3="";
          s = br.readLine();
          br.close(); 
          ////应该判断这个字符串是否合法,这里略去;
          int i=Integer.parseInt(s);
          int j=1,k=0,temp=0;
            do{
           temp=i%10;
           i=i/10;       
           System.out.println(i+","+temp);
           if (temp==0) {    
           if ((!s2.equals(str2[0]))&&(k!=4)&&(k!=0)&&(s3.length()>0)){
           s2=str2[0];
             s1=s2+s1;
             s3=s1;}
             else if(k==4){
             s2=str1[4];
             s1=s2+s1;
             s3="";
           }
            }
            else{
             s2=str2[temp]+str1[k];
             s1=s2+s1;
             s3=s1;
           }
           k++;
           }
          while(i>0);
          System.out.println(s1);
        } catch(Exception e) {
          e.printStackTrace();
        }
    }
    }