`
vakin.jiang
  • 浏览: 147199 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[原创]人民币金额小写转大写工具(java)

阅读更多
以前的刚接触java写的一个小程序,无聊整理一下以前的东东又翻出来了,所以分享一下。。。
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
//		System.out.println(amountConvert2Cn("1234567890"));
		System.out.println(amountConvert2Cn("1000000023"));
//		System.out.println(amountConvert2Cn("28900200"));
	}
	
	private final static String[] _NUMUPPER = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; 
	
	private final static String[] _SMALLUNIT = { "", "拾","佰","仟"}; 
	private final static String[] _BIGUNIT = { "","", "万","亿"}; 
	private final static String[] _AMONTUNIT = { "元","角", "分"}; 
	
	public static String amountConvert2Cn(String amount){

		StringBuilder buff = new StringBuilder();
		
		String[] splits = amount.replaceAll(",", "").split("\\.");
		final String yuan = splits[0];
		//final String jiaofen = splits[1];
		
		int btyes = yuan.length();
		//分割段数(4位一段,第一段位数<=4)
		int partCounts = btyes%4==0?btyes/4:(btyes/4+1);
		//第一部分长度
		int firstPartLen = btyes%4==0?4:btyes%4;
		//
		String smallNumConvert = smallNumConvert(yuan.substring(0,firstPartLen));
		buff.append(formatAllZore(smallNumConvert,_BIGUNIT[partCounts]));
	
		for (int i = 1; i < partCounts; i++) {
			String temp = yuan.substring(firstPartLen+i*4-4,firstPartLen+i*4);
			buff.append(formatAllZore(smallNumConvert(temp),_BIGUNIT[partCounts-i]));
		}
		
		buff.append(_AMONTUNIT[0]);
		
		return buff.toString().replaceAll("零+", "零");
	}
	
	private static String formatAllZore(String numConvert,String unit){
		return "零".equals(numConvert)?numConvert:(numConvert+unit);
	}
	
	/**
	 * 千位计数以内转换处理
	 * @param num 1234
	 * @return
	 */
	private static String smallNumConvert(String num){
		StringBuilder buff = new StringBuilder();
		
		if(Integer.parseInt(num)==10)
			return "拾";
		if(Integer.parseInt(num)==0)
			return "零";
		
		char[] arrays = num.toCharArray();
		
		for (int i = 0; i < arrays.length; i++) {
			int number = Integer.parseInt(String.valueOf(arrays[i]));
			buff.append(_NUMUPPER[number]);
			if(number!=0){
				buff.append(_SMALLUNIT[arrays.length-i-1]);
			}
		}
		
		String tmp = buff.toString().replaceAll("零+", "零");
		if(tmp.endsWith("零"))
			tmp = tmp.substring(0,tmp.length()-1);
		return tmp;
	}

}

分享到:
评论
1 楼 mjm13 2010-04-09  
正好需要。。。谢```

相关推荐

    人民币小写金额转大写金额(java版)

    ### 人民币小写金额转大写金额(Java版) #### 概述 本文将详细介绍一个Java程序,该程序用于将小写的人民币金额转换为大写形式。此转换主要用于财务、会计和其他正式场合,在这些场合中,大写金额是标准且必须的...

    人民币金额小写转换大写工具

    总之,“人民币金额小写转换大写工具 1.0 绿色版”是一个实用且便捷的工具,对于处理人民币金额转换工作提供了极大的便利。它的存在简化了财务人员的工作流程,减少了人为错误,提升了业务处理的效率和准确性。

    BAT批处理脚本-格式转换-人民币金额小写转大写.cmd.zip

    本文将详细介绍"BAT批处理脚本-格式转换-人民币金额小写转大写.cmd.zip"这个压缩包中的知识点,以及如何利用批处理脚本来实现人民币金额的小写到大写的转换。 首先,我们要理解批处理脚本的基本概念。批处理脚本是...

    人民币金额小写转大写

    MFC制作的人民币小写金额转化大写金额,方便出差回来时报账填写账单大写RMB使用,欢迎下载

    小写转大写工具小写转大写工具

    小写转大写工具小写转大写工具小写转大写小写转大写工具工具小写转大写工具

    在Excel中将人民币金额小写转成大写

    在Excel中将人民币金额小写转成大写 在Excel中将人民币金额小写转成大写 在Excel中将人民币金额小写转成大写

    JAVA大写金额转化为小写金额

    用JAVA书写的一个大写金额转化为小写金额的类

    金额小写转大写完整js

    金额小写转大写完整版本js,可直接调用

    高到垓位低到毫的 人民币金额小写转大写

    可以实现高到垓位低到毫的 人民币金额小写转大写 C#完整的程序。

    人民币金额小写转换大写

    总的来说,“人民币金额小写转换大写”的实现涉及了字符串操作、字符映射、循环和条件判断等基本编程概念,是Java编程中的一个实用技巧,尤其在处理财务数据时非常有用。通过阅读和理解`TransformMoney.java`的代码...

    金额小写转大写工具

    金额小写转大写工具,正数负数都可以转换。

    Java编程-金额小写转大写

    在Java编程中,将金额小写转换为大写是一个常见的需求,特别是在财务系统或银行应用中,为了符合规范,金额通常需要以大写形式展示,防止因大小写混淆导致的错误。本文将深入探讨如何实现这个功能,并通过提供的`...

    金额小写转大写_sql函数.rar

    "金额小写转大写_sql函数"的主题聚焦于如何在SQL(结构化查询语言)中将货币数值从小写形式转换为符合中国会计规范的大写形式。在财务报告和正式文档中,通常要求金额以大写汉字表示,以防止篡改和增加审计安全性。 ...

    java钱币小写转换大写

    在Java编程中,将钱币小写金额转换为大写金额是一项常见的需求,特别是在财务系统或者电商平台上,为了符合规范和避免误解,金额通常会以大写形式展示。本知识点主要探讨如何利用Java实现这一功能。 首先,我们需要...

    C#小写金额转换大写金额

    C#将小写金额转换成大写,很高兴能与大家分享我的资源

    js_小写金额转大写金额,大写转小写.js

    通过js代码将小写金额转换成大写金额,将大写金额转换成数字

    JS实现人民币小写转大写

    在JavaScript编程中,有时我们需要将人民币的数字金额(小写)转换为中文的大写形式,以便于财务报表或发票的规范书写。这个过程涉及到字符映射、数字处理以及字符串操作等多个知识点。以下是对这个主题的详细说明:...

    js金额小写转大写脚本

    总结来说,"js金额小写转大写脚本"涉及的是JavaScript对财务数字的格式化处理,而FTP下载程序和Java则是网络文件传输和服务器端编程的范畴。这两个主题虽然在实际工作中可能会结合使用,但它们各自代表了编程的不同...

Global site tag (gtag.js) - Google Analytics