数字转换为通俗汉字

package java拓展;
import java.util.*;
public class Transofmoney {//钱数用中文表示
		public static void main(String args[]){
			char add[]={'千','百','十','亿','千','百','十','万','千','百','十'};
			char num[]={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
			System.out.println("Please give your number:");
			Scanner reader = new Scanner(System.in);
		    long p=100000000000L;
		    String result="";
		    int count=0;
		    long number=reader.nextLong();
		    int dight=12;//dight为number的数字位数;p最终位数也为dight
		    while(number/p==0){
		    	p=p/10;
		    	dight--;
		    	count++;//count为add当前位
		    }
		    long former=1;//前面位
		    int flag=1;//判断亿,万前三位是不是有非零
		    for(int i=1;i<=dight;i++){
		    	long n= number/p;
		    	number=number%p;
		    	p=p/10;
		    	if(n!=0){
		    		flag=1;
		    		if(former==0)
		    			result=result+'零';
		    		 result=result+num[(int)n];
		    		 if(i!=dight)
				    		result+=add[count+i-1];
		    	}
		    	else if(count+i-1==3||count+i-1==7){
		    		if(flag==1)
		    		   result=result+add[count+i-1];
		    		flag=0;
		    	}
		    	former=n;
		 
		    }
		    System.out.println(result);
		    
		}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值