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

本文提供了一个Java程序示例,该程序可以将输入的阿拉伯数字转换为对应的中文金额大写形式,适用于财务和银行场景中金额的显示。通过使用静态数组存储中文数字和单位,程序能够递归地处理每一位数字,并适当地插入中文单位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值