什么费用数字?
是不是这样“一二三”->“壹贰叁”,比较好办啊,从字符串中一个一个把简体字取出来,然后用switch语句将其转换为繁体输出就行了。

解决方案 »

  1.   

    public class test1
    {
    public static void main(String args [])
    {
    test1 shu=new test1();
    long x=12345678;
    int j=shu.zh(x);
    }
    public int zh(long x)
    {
    String xx="";
    xx=String.valueOf(x);
    System.out.println(xx);
    int y=xx.length();
        String arr []=new String [y];
        int l=arr.length;
        System.out.println("length:"+l+"位数");
        test1 ky=new test1();
        for(int i=0;i<arr.length;i++)
        {
         arr[i]=xx.substring(i,i+1);
         String b="";
         b=ky.hz(arr[i]);
         arr[i]=b;
         }
    if (arr.length==1) 
    {   
    System.out.println(arr[0]+"元");
    }
    if (arr.length==2) 
    {   
        if (arr[1].equals("零"))
        {
           System.out.println(arr[0]+"拾"+"元");
           }
        else 
        {  
       System.out.println(arr[0]+"拾"+arr[1]+"元");
     }  
    }
    if (arr.length==3) 
    {
    if (arr[2].equals("零")&&!arr[1].equals("零"))
       System.out.println(arr[0]+"佰"+arr[1]+"拾"+"元");
    else if (arr[1].equals("零")&&arr[2].equals("零")) 
        System.out.println(arr[0]+"佰"+"元");
    else    
    System.out.println(arr[0]+"佰"+arr[1]+"拾"+arr[2]+"元");
    }
    if (arr.length==4) 
    {
    if (arr[3].equals("零")&&!arr[1].equals("零")&&!arr[2].equals("零"))
      System.out.println(arr[0]+"仟"+arr[1]+"佰"+arr[2]+"拾"+"元");
    else if (arr[3].equals("零")&&arr[2].equals("零")&&!arr[1].equals("零"))
      System.out.println(arr[0]+"仟"+arr[1]+"佰"+"元");
    else if (arr[3].equals("零")&&arr[2].equals("零")&&arr[1].equals("零"))
      System.out.println(arr[0]+"仟"+"元");
          else
        System.out.println(arr[0]+"仟"+arr[1]+"佰"+arr[2]+"拾"+arr[3]+"元");
    }
    if (arr.length==5) 
    {
    System.out.println(arr[0]+"万"+arr[1]+"仟"+arr[2]+"佰"+arr[3]+"拾"+arr[4]+"元");
    }
    if (arr.length==6) 
    {
    System.out.println(arr[0]+"拾"+arr[1]+"万"+arr[2]+"仟"+arr[3]+"佰"+arr[4]+"拾"+arr[5]+"元");
    }
    if (arr.length==7) 
    {
    System.out.println(arr[0]+"佰"+arr[1]+"拾"+arr[2]+"万"+arr[3]+"仟"+arr[4]+"佰"+arr[5]+"拾"+arr[6]+"元");
    }
    if (arr.length==8) 
    {
    System.out.println(arr[0]+"仟"+arr[1]+"佰"+arr[2]+"拾"+arr[3]+"万"+arr[4]+"仟"+arr[5]+"佰"+arr[6]+"拾"+arr[7]+"元");
    }
    if (arr.length==9) 
    {
    System.out.println(arr[0]+"元");
    }
        return y;    
    }
    public String hz(String alb)
    {
    String zw="";
    if (alb.equals("1"))
    {
        zw="壹";
    }
    if (alb.equals("2"))
    {
    zw="贰";
    }
    if (alb.equals("3"))
    {
    zw="叁";
    }
    if (alb.equals("4"))
    {
    zw="肆";
    }
    if (alb.equals("5"))
    {
    zw="伍";
    }
    if (alb.equals("6"))
    {
    zw="陆";
    }
    if (alb.equals("7"))
    {
    zw="柒";
    }
    if (alb.equals("8"))
    {
    zw="捌";
    }
    if (alb.equals("9"))
    {
    zw="久";
    }
    if (alb.equals("0"))
    {
    zw="零";
    }
    return zw;
    }
    }
      

  2.   

    //抄别人的,Pascal
    //---初学者function NumToChar(n:Real): wideString; //可以到万亿,并可随便扩大
    const
      cNum:WideString='零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分';
      cCha:array[0..1, 0..11]of string =
          (( '零仟','零佰','零拾','零零零','零零','零亿','零万','零元','亿万','零角','零分','零整'),
          ( '零','零','零','零','零','亿','万','元','亿','零','整','整'));
    var
      i :Integer;
      sNum :WideString;
    begin
      result :='';
      sNum := FormatFloat('0',n*100);
      for i := 1 to Length(sNum) do
        result := result + cNum[ord(sNum[i])-47] + cNum[26-Length(sNum)+i];
      for i:= 0 to 11 do //去掉多余的零
        result := StringReplace(result, cCha[0,i], cCha[1,i], [rfReplaceAll]);
    end;