阿拉伯数字的读法(JAVA实现)

来源:互联网 发布:mt7282 数据手册 编辑:程序博客网 时间:2024/05/18 01:50
import java.util.Scanner;public class Main{    static int flg=0;    static String []s1={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};    static String []s2={"","shi","bai","qian"};    static String []s3={"","wan","yi"};    public static void main(String args[])    {        Scanner input=new Scanner(System.in);        int a=input.nextInt();        input.close();        String s=read(a);        System.out.println(s);    }    public static String fun(int a)    {        String s="";        int i,cnt=0;        boolean flag=false;  //"零"开头的情况        boolean ff=false;      //"yi shi"开头的情况        if(a%100==a && a>=10 && (int)a/10==1)    //判断是否"yi shi"开头        {            a=a%10;            ff=true;        }        while(a!=0)        {            i=a%10;            a=a/10;            if(i!=0)            {                s=s2[cnt]+' '+s;                s=s1[i]+' '+s;                flag=true;                    }            else if(flag)        //处理四位中间有零的情况            {                s=s1[i]+' '+s;                flag=false;            }            cnt++;        }        if(ff) s="shi "+s.trim();    return s.trim();    }    public static String read(int n){        String tmp="";        int a;        int cnt=1;        while(n>0)        {            a=n%10000;                    n=n/10000;                                            if(a!=0) tmp=fun(a)+tmp;                    //处理一般情况,可防止出现零在末尾的情况            if(n!=0 && a<1000 && a!=0) tmp="ling "+tmp;    //处理零在中间的情况            if(n%10000!=0) tmp=' '+s3[cnt]+' '+tmp;        //处理整万数            cnt++;        }    return tmp;    }}

阅读全文
0 0
原创粉丝点击