黑马程序员技术交流社区

标题: 如何把1,2,3,4,5....转变成汉字:一二三四五.... [打印本页]

作者: m6281838    时间: 2012-12-5 20:06
标题: 如何把1,2,3,4,5....转变成汉字:一二三四五....
我自己写了一些,希望有高手能在我的基础上给我完整一下!
import java.util.*;
public class DuShu {
        public static void main(String[] args){
                Scanner in=new Scanner(System.in);
                int[] arr={0,1,2,3,4,5,6,7,8,9};
                char[] Ch={'零','一','二','三','四','五','六','七','八','九'};
                int num;
                String name;
                System.out.println("请输入数字:");
                num=in.nextInt();
                for(int i=0;i<Ch.length;i++){
                        int gewei=num%10;
                        int shiwei=num/10%10;
                        int baiwei=num/100%10;
                        int qianwei=num/1000%10;
                        int wanwei=num/10000%10;
                       
                        System.out.print(Ch[wanwei]);
                        System.out.print(Ch[qianwei]);
                        System.out.print(Ch[baiwei]);
                        System.out.print(Ch[shiwei]);
                        System.out.println(Ch[gewei]);
                }       
        }
}
作者: 丁桂松    时间: 2012-12-6 06:43
  1. package dojoo.demo;

  2. import java.util.Scanner;

  3. public class DuShu {

  4.         public static void main(String[] args) {
  5.                 // 导入Scanner 包.控制台输入
  6.                 Scanner input = new Scanner(System.in);
  7.                 // int[] arr={0,1,2,3,4,5,6,7,8,9};
  8.                 String numeric = "零一二三四五六七八九";
  9.                 System.out.println("请输入数字:");
  10.                 // 将控制台输入的数字默认成String型
  11.                 String str = input.next();
  12.                 for (int i = 0; i < str.length(); i++) {
  13.                         // 遍历Str中的每个字符.并将该字符转换成String型
  14.                         String str1 = str.charAt(i) + "";
  15.                         // 将获取的每个字符转成int
  16.                         StringBuffer sb1 = new StringBuffer(str1);
  17.                         int a = Integer.parseInt(sb1.toString());
  18.                         // 用获得的数字与String numeric 中的角标匹配.得到一个String型的字符串
  19.                         String sin = numeric.charAt(a) + "";
  20.                         // 打印出去.不换行.
  21.                         System.out.print(sin);
  22.                 }
  23.                 // 因为时间有限没有深纠.如果需求大点,比如每个数字对应的位数加上百千万等等这些.可能代码的实现形式就不一样了
  24.                 // 我是按你题目的需求写的.无关其他.当然还需要考虑用户输入的不是数字的问题.这里就没深究了.其实有很多种写法.希望这个对你有帮助.
  25.                 /*
  26.                  * for(int i=0;i<Ch.length;i++){ int gewei=num%10; int shiwei=num/10%10;
  27.                  * int baiwei=num/100%10; int qianwei=num/1000%10; int
  28.                  * wanwei=num/10000%10;
  29.                  *
  30.                  * System.out.print(Ch[wanwei]); System.out.print(Ch[qianwei]);
  31.                  * System.out.print(Ch[baiwei]); System.out.print(Ch[shiwei]);
  32.                  * System.out.println(Ch[gewei]); }
  33.                  */
  34.         }
  35. }
复制代码
看注释.
作者: 黑马刘向阳    时间: 2012-12-6 11:09
  1. import java.util.*;
  2. public class DuShu {
  3.         public static void main(String[] args){
  4.     Scanner in=new Scanner(System.in);
  5.     int[] arr={0,1,2,3,4,5,6,7,8,9};
  6.     char[] Ch={'零','一','二','三','四','五','六','七','八','九'};
  7.     int num,index;
  8.     System.out.println("请输入数字:");
  9.     num=in.nextInt();
  10.     index = num%10;
  11.     StringBuilder sb = new StringBuilder();
  12.           sb.append(Ch[index]);
  13.     while(num/10!=0) {           
  14.             num = num/10;       
  15.             index = num%10;
  16.             sb.append(Ch[index]);
  17.     }
  18.     System.out.println(sb.reverse().toString());   
  19.         }
  20. }
复制代码

作者: m6281838    时间: 2012-12-6 19:48
丁桂松 发表于 2012-12-6 06:43
看注释.

谢谢啦哈!其实有很多的代码都很陌生,我就了解常见的几个循环。
作者: m6281838    时间: 2012-12-6 19:48
刘晓阳 发表于 2012-12-6 11:09

谢谢啦哈,但是你这个还是有点小小的问题,比如我输入:0123,出来的结果是:一二三。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2