java数字转中文大写

/**
	 * 数字转中文大写
	 * @param num
	 * @return
	 */
	public static String convertCurrencyToChinese(Object num){
		if(num==null) 
			return "";
		BigDecimal value = new BigDecimal(num.toString());
		//System.out.println(value);
		String[] strs = value.toString().split("\\.");
		String preDotNum = strs[0];
		
		String format = "";
		for(int i=preDotNum.length(),j=preDotNum.length();i>0;i--){
			if(preDotNum.charAt(j-i)=='-')
				format = format + "负";
			else
				format = format + numChar2chinese(preDotNum.charAt(j-i),i);
		}
		format = format.replaceAll("零仟零佰零拾零","零");
		format = format.replaceAll("零仟零佰零拾","零");
		format = format.replaceAll("零仟零佰","零");
		format = format.replaceAll("零仟","零");
		format = format.replaceAll("零佰零拾零","零");
		format = format.replaceAll("零佰零拾","零");
		format = format.replaceAll("零佰","零");
		format = format.replaceAll("零拾零","零");
		format = format.replaceAll("零拾","零");
		format = format.replaceAll("零亿","亿");
		format = format.replaceAll("零万","万");
		format = format.replaceAll("亿万","亿零");
		format = format.replaceAll("零零","零");
		if(format.endsWith("零"))
			format = format.substring(0,format.length()-1);
		format = format + "元";
		if(strs.length==2&&!"00".equals(strs[1])&&!"0".equals(strs[1])){
			String afterDotNum = strs[1];
			for(int i=0;i<afterDotNum.length()&&i<2;i++){
					format = format + numChar2chinese(afterDotNum.charAt(i),0-i);
			}
		}
		return format; 
	}
	
	private static String numChar2chinese(char num,int pos){
		String str="";
		switch (num) {
			case '0':str="零";break;
			case '1':str="壹";break;
			case '2':str="贰";break;
			case '3':str="叁";break;
			case '4':str="肆";break;
			case '5':str="伍";break;
			case '6':str="陆";break;
			case '7':str="柒";break;
			case '8':str="扒";break;
			case '9':str="玖";break;
		}
		String posName="";
		switch (pos){
			case -1:posName="分";break;
			case 0:posName="角";break;
			case 1:break;
			case 2:posName="拾";break;
			case 3:posName="佰";break;
			case 4:posName="仟";break;
			case 5:posName="万";break;
			case 6:posName="拾";break;
			case 7:posName="佰";break;
			case 8:posName="仟";break;
			case 9:posName="亿";break;
			case 10:posName="拾";break;
			case 11:posName="佰";break;
			case 12:posName="仟";break;
		}
		return str+posName;
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值