根据优快云改编的Java金额转换大小写程序

本文提供了一个Java类,用于将数字转换为中文表达。它能够处理从个位到千亿位的数字,并支持小数部分,最多两位。通过解析输入字符串,类能够正确地将数字映射到相应的中文表示。

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

public class NumToChinese {

	public static String NumberToChinese(String input){
		String s1="零壹贰叁肆伍陆柒捌玖";
		String s4="分角整元拾佰仟万拾佰仟亿拾佰仟";
		String temp="";
		String result="";
		if (input==null) return "输入的字串不是数字串只能包括以下字符('0'~'9','.'),输入字串最大只能精确到仟亿,小数点只能两位!";
		temp=input.trim();
		float f;
		try{
			f=Float.parseFloat(temp);
		}catch(Exception e){
			return "输入的字串不是数字串只能包括以下字符('0'~'9','.'),输入字串最大只能精确到仟亿,小数点只能两位!";
		}
		int len=0;
		if(temp.indexOf(".")==-1) len=temp.length();
		else len=temp.indexOf(".");
		if(len>s4.length()-3) return("输入字串最大只能精确到仟亿,小数点只能两位!");
		int n1=0;
		String num="";
		String unit="";
		for(int i=0;i<temp.length();i++){
			if(i>len+2){break;}
			if(i==len) {continue;}
			n1=Integer.parseInt(String.valueOf(temp.charAt(i)));
			num=s1.substring(n1,n1+1);
			n1=len-i+2;
			unit=s4.substring(n1,n1+1);
			result=result.concat(num).concat(unit);
		}
		if((len==temp.length())||(len==temp.length()-1)) result=result.concat("整");
		if(len==temp.length()-2) result=result.concat("零分");
		return result;
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值