将一个数字转化成中文输出
(如:1234567     输出:一百二拾三万四千五百六拾七
如:1205.5      输出一千二百零五点五
用java语言实现,,请编一段程序实现!

解决方案 »

  1.   

    http://www.java-cn.com/bbs-jsp/show.jsp?id=89518&forum=base
      

  2.   

    你直接把传进来的 数字 1.String.valueof();先转成字符串 
    2. str.split(".");//截取 整数部分与小数部分 
        str.length();/根据数组长度判断有没小树部分 然后分开处理 
    3. 接着把整数部分 s.length()判断一下有多长超过三位数的截取出来 
        套一个循环 万 十万 百万........等等等等。    三位以内的也就是 下标为s.length()-3,-2,-1,分别为 千,百,十。 
      
       数字部分可以套一个 switch(  Integer.paseInt(s.charAt(index) )  ){ 
                       case 0: xxx = "零";break; 
                       case 1; xxx = "壹";break;   
                         .. 
                         .. 
                         .. 
                       } 核心思想就在上面了! 用字符串处理比较灵活。
      

  3.   

    以前写的人民币大小写转换的
    import java.util.*;
    public class RmbConvert {
    public void convertToCapital(double money){
    String[] capitalRmb=new String[14];
    for(int i=0;i<capitalRmb.length;i++){
    int j=(int)((money*100)%10);
    money/=10;
    switch(j){
    case 0: capitalRmb[i]="零";break;
    case 1:capitalRmb[i]="壹";break;
    case 2:capitalRmb[i]="贰";break;
    case 3:capitalRmb[i]="叁";break;
    case 4:capitalRmb[i]="肆";break;
    case 5:capitalRmb[i]="伍";break;
    case 6:capitalRmb[i]="陆";break;
    case 7:capitalRmb[i]="柒";break;
    case 8:capitalRmb[i]="捌";break;
    case 9:capitalRmb[i]="玖";break;
    }
    }
    String[] str=new String[]{
    "仟","百","拾","亿 ","仟","百","拾","万 ","仟","百","拾","元 ","角","分"
    };
    int init=0;
    while(capitalRmb[capitalRmb.length-1-init]=="零"){
    init++;
    }
    for(int i=init;i<str.length;i++){
    if(capitalRmb[capitalRmb.length-1-i]=="零"&&str[i]!="角"&&str[i]!="分"){
    System.out.print(capitalRmb[capitalRmb.length-1-i]);
    }else
    System.out.print(capitalRmb[capitalRmb.length-1-i]+str[i]);
    }
    }
    public void convertToLower(String money){
    char[] c=money.toCharArray();
    double[] num=new double[c.length/2];
    int j=0;
    for(int i=0;i<c.length;i+=2){
    double d=num.length-3-j;
    switch(c[i]){
    case '零':num[j++]=(0*Math.pow(10.0,d));break;
    case '壹':num[j++]=(1*Math.pow(10.0,d));break;
    case '贰':num[j++]=(2*Math.pow(10.0,d));break;
    case '叁':num[j++]=(3*Math.pow(10.0,d));break;
    case '肆':num[j++]=(4*Math.pow(10.0,d));break;
    case '伍':num[j++]=(5*Math.pow(10.0,d));break;
    case '陆':num[j++]=(6*Math.pow(10.0,d));break;
    case '柒':num[j++]=(7*Math.pow(10.0,d));break;
    case '捌':num[j++]=(8*Math.pow(10.0,d));break;
    case '玖':num[j++]=(9*Math.pow(10.0,d));break;
    }

    }
    double init=0;
    for(int i=0;i<num.length;i++){
    init+=num[i];
    }
    System.out.print(init);
    }
    public static void main(String[] args) {
    System.out.println("please enter the lower momey");
    RmbConvert rmb=new RmbConvert();
    Scanner sca=new Scanner(System.in);
    Double money=sca.nextDouble();
    System.out.println("convert to Capital");
    rmb.convertToCapital(money);
    System.out.println();
    System.out.println("convert to lower");
    Scanner sc=new Scanner(System.in);
    String str=sc.next();
    rmb.convertToLower(str);
    }}
    测试结果:please enter the lower momey
    123456789
    convert to Capital
    壹亿 贰仟叁百肆拾伍万 陆仟柒百捌拾玖元 零角零分
    convert to lower
    壹亿贰仟叁百肆拾伍万陆仟柒百捌拾玖元零角零分
    1.23456789E8
      

  4.   

    public class TestBigChar {
        
        public static char[] characters = {'零','一','二','三','四','五','六','七','八','九'};
        public static char[] units = {'点','十','百','千'};
        
        public static void main(String[] args) {
            System.out.println(convert(123.04));
        }    public static String convert(double d){
            String val = d+"";
            String convert = "";
            int index = val.indexOf('.');
            for(int i=0;i<val.length();i++){
                convert += i==index?units[0]:characters[Integer.parseInt(val.substring(i,i+1))];
                if(i<index)
                    convert += units[index-i];
            }
            return convert;
        }
        
    }
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lz12366/archive/2009/10/02/4628139.aspx
      

  5.   


    public class TestNumberToString { public static void main(String[] args) {
    String[] digitChinese = { "零", "一", "二", "三", "四", "五", "六", "七", "八",
    "九" };
    String[] unitChinese = { "点", "十", "百", "千", "万" };
    double digit = 1234567.235;
    String convert = "";
    String digitStr = String.valueOf(digit);
    int length = digitStr.length();
    int pointIndex = digitStr.indexOf(".");
    int position = pointIndex == -1 ? length - 1 : pointIndex-1;
    for (int i = 0; i < pointIndex; i++) {
    int temp = Integer.parseInt(digitStr.substring(i, i + 1));
    convert += position > 4 ? digitChinese[temp]
    + unitChinese[position % 4] : digitChinese[temp]
    + unitChinese[position];
    position--;
    }
    if (pointIndex != -1) {
    for (int i = pointIndex+1; i < length; i++) {
    convert += digitChinese[Integer.parseInt(digitStr.substring(i,i+1))];
    }
    }
    System.out.println(convert);
    }}