`
liubo0_0
  • 浏览: 22019 次
社区版块
存档分类
最新评论

阿拉伯数字转换成汉字金额

 
阅读更多

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;


public class Transform {

public static void main(String[] args){


String number = "101000001010";
String str1 = null;
String str2 = null;


Map numMap = new HashMap();
numMap.put('0', "零");
numMap.put('1', "壹");
numMap.put('2', "贰");
numMap.put('3', "叁");
numMap.put('4', "肆");
numMap.put('5', "伍");
numMap.put('6', "陆");
numMap.put('7', "柒");
numMap.put('8', "捌");
numMap.put('9', "玖");


//去掉小数位,不进行换算.
if(number.indexOf(".") == -1){
str1 = number;
}else{
str1 = number.substring(0,number.indexOf("."));
str2 = number.substring(number.indexOf(".")+1);
}

System.out.println(str1);
//每隔4位数字,放入到一个集合中.
ArrayList al = new ArrayList();
while(true){
String ss = "";
if(str1.length() >4){
ss = str1.substring(str1.length()-4,str1.length());
str1 = str1.substring(0,str1.length()-4);
al.add(ss);
}else{

ss = str1.substring(0);
for(int k =0;k<(4-str1.length());k++){
ss="0"+ss;
}
al.add(ss);
break;
}
}

String finalStr = "";
//反转集合
Collections.reverse(al);
//拼成最终的字符串.
for(int i =0;i<al.size();i++){
char[] cs =((String)al.get(i)).toCharArray();
if(al.size() == 3 ){
if(i == 0){
finalStr += toChinese(cs, numMap)+"亿";
}else if(i == 1){
if(toChinese(cs, numMap) == ""){
finalStr += "零";
}else{
finalStr += toChinese(cs, numMap)+"万";
}

}else{
finalStr += toChinese(cs, numMap);
}
}else if(al.size() == 2 ){
if(i == 0){
finalStr += toChinese(cs, numMap)+"万";
}else{
finalStr += toChinese(cs, numMap);
}
}else if(al.size() == 1){
finalStr += toChinese(cs, numMap);
}
}
System.out.println(finalStr+"元整");

}



//把4位数字换成汉字.根据排列组合,共有16中不同.
public static String toChinese(char[] cs,Map numMap){

//000x -- 1
if(cs[0]=='0' && cs[1]=='0'&& cs[2]=='0'&& cs[3]!='0'){
return (String) numMap.get(cs[3]);
}
//00x0 -- 2
else if(cs[0]=='0' && cs[1]=='0'&& cs[2]!='0'&& cs[3]=='0'){
return numMap.get(cs[2])+"拾";
}
//0x00 -- 3
else if(cs[0]=='0' && cs[1]!='0'&& cs[2]=='0'&& cs[3]=='0'){
return numMap.get(cs[1])+"佰";
}
//x000 -- 4
else if(cs[0]!='0' && cs[1]=='0'&& cs[2]=='0'&& cs[3]=='0'){
return numMap.get(cs[0])+"仟";
}
//00xx -- 5
else if(cs[0]=='0' && cs[1]=='0'&& cs[2]!='0'&& cs[3]!='0'){
return numMap.get(cs[2])+"拾" + numMap.get(cs[3]);
}
//0x0x -- 6
else if(cs[0]=='0' && cs[1]!='0'&& cs[2]=='0'&& cs[3]!='0'){
return numMap.get(cs[1])+"佰" + numMap.get(cs[2]) + numMap.get(cs[3]);
}
//x00x -- 7
else if(cs[0]!='0' && cs[1]=='0'&& cs[2]=='0'&& cs[3]!='0'){
return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) + numMap.get(cs[3]);
}
//0xxx -- 8
else if(cs[0]=='0' && cs[1]!='0'&& cs[2]!='0'&& cs[3]!='0'){
return numMap.get(cs[1])+"佰" + numMap.get(cs[2]) + "拾" + numMap.get(cs[3]);
}
//x0xx -- 9
else if(cs[0]!='0' && cs[1]=='0'&& cs[2]!='0'&& cs[3]!='0'){
return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) +numMap.get(cs[2]) + "拾" + numMap.get(cs[3]);
}
//xxxx -- 10
else if(cs[0]!='0' && cs[1]!='0'&& cs[2]!='0'&& cs[3]!='0'){
return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) + "佰" +numMap.get(cs[2]) + "拾" + numMap.get(cs[3]);
}
//xxx0 -- 11
else if(cs[0]!='0' && cs[1]!='0'&& cs[2]!='0'&& cs[3]=='0'){
return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) + "佰" +numMap.get(cs[2]) + "拾" ;
}
//xx00 -- 12
else if(cs[0]!='0' && cs[1]!='0'&& cs[2]=='0'&& cs[3]=='0'){
return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) + "佰" ;
}
//0xx0 -- 13
else if(cs[0]=='0' && cs[1]!='0'&& cs[2]!='0'&& cs[3]=='0'){
return numMap.get(cs[1])+"佰" + numMap.get(cs[2]) + "拾" ;
}
//xx0x -- 14
else if(cs[0]!='0' && cs[1]!='0'&& cs[2]=='0'&& cs[3]!='0'){
return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) + "佰" +numMap.get(cs[2])+numMap.get(cs[3]) ;
}
//x0x0 -- 15
else if(cs[0]!='0' && cs[1]=='0'&& cs[2]!='0'&& cs[3]=='0'){
return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) +numMap.get(cs[2])+"拾";
}
//0000 -- 16
else{
return "";
}
}


}

分享到:
评论

相关推荐

    将阿拉伯数字转换为汉字数字或者汉字大写金额

    1、该dll能将阿拉伯数字转换为汉字数字或者中文大写金额。例如1234567.07可转换为: “一百二十三万四千五百六十七点零七”或“壹佰贰拾叁万肆仟伍佰陆拾柒圆零柒分”。 目前支持正负千亿以内(整数部分不超过12位)...

    java写的将阿拉伯数字转化为中文金额的大写方式

    在Java编程中,将阿拉伯数字转化为中文金额大写是一项常见的任务,特别是在财务系统或报表生成中。这个题目要求实现一个程序,能够读取输入的阿拉伯数字字符串,然后将其转换为符合中国会计规范的中文大写金额表示。...

    金额阿拉伯数字转换中文大写(全)

    本文将详细阐述“金额阿拉伯数字转换中文大写”的相关知识点。 1. **中文大写数字系统**: - 在中文中,阿拉伯数字1至9对应的中文大写分别是壹、贰、叁、肆、伍、陆、柒、捌、玖。 - 零用汉字零表示,整数位与...

    C# - 阿拉伯数字金额转换为繁体数字金额

    这个特定的项目“C# - 阿拉伯数字金额转换为繁体数字金额”专注于一个常见的财务处理任务,即把通常用阿拉伯数字表示的货币金额转化为繁体中文的表示方式。这在中文环境中特别有用,因为繁体数字在正式的商业文档和...

    汉字金额转换为阿拉伯数字

    在描述中提到,虽然网络上有许多关于将阿拉伯数字转换为汉字的教程,但作者决定编写一个相反方向的转换工具,这显示了对特定需求的响应和解决实际问题的能力。 在实现这个功能时,首先需要定义一个汉字金额字典,...

    js(非金额)把阿拉伯数字转成中文大写

    根据提供的文件信息,我们可以深入探讨如何使用JavaScript将阿拉伯数字转换为中文大写,尤其是在非金额场景下的应用。此转换在日常编程中具有广泛的应用场景,例如用于生成合同文本中的日期等。 ### 核心概念 ####...

    java金额转换,阿拉伯数字转换成中国传统形式。

    在Java编程中,将阿拉伯数字转换为中国传统形式的金额表示是一项常见的需求,特别是在财务系统或者银行应用中。这种转换能够使数字更符合中国人的阅读习惯,增加可读性。在这个问题中,我们要处理的是将像...

    阿拉伯数字转化汉字

    阿拉伯数字金额转换成汉字金额,比如1000.00 转换成 壹仟元。

    数字转换成金额大写

    在IT行业中,尤其是在财务软件开发或者自动化报表系统中,经常需要将数字转换成中文大写的金额形式,以便符合中国的财务规范。"数字转换成金额大写"是一个常见的需求,特别是在Delphi这样的编程环境中。Delphi是一款...

    阿拉伯数字金额转换为大写数字金额

    在IT行业中,尤其是在财务软件开发或者银行系统设计中,经常需要将阿拉伯数字金额转换成大写数字金额,以便于核对、防止错误和提高安全性。这是因为大写数字在视觉上与阿拉伯数字有所区别,可以降低欺诈风险。本例子...

    阿拉伯数字转换成中文大写的算法(C#窗体程序)

    在本文中,我们将深入探讨如何使用C#编程语言创建一个窗体应用程序,该程序能够将输入的阿拉伯数字转换为中文大写。这个功能在财务报表、发票和其他需要以中文大写表示金额的场合非常有用。 首先,我们看到程序的...

    sql server阿拉伯数字转大写中文存储过程

    SQL Server 是一个功能强大且广泛应用的关系数据库管理系统,而阿拉伯数字转大写中文是一个常见的需求,例如,在财务报表、发票printing等应用场景中,需要将阿拉伯数字转换为大写中文以满足特定的格式要求。...

    金额阿拉伯数字转换中文大写全源码

    佛慈悲,应要求给整个下载在我的资源中,其中包含自学习桌面编程以来所找的资料及未完成的部分学习代码,从未完成的开始转入了另一个急需开发软件的研发工作,所以没时间来作这个的继续,打包原封不动提供学习了. ...

    将阿拉伯数字转换为金额的汉字大写

    总的来说,将阿拉伯数字转换为金额的汉字大写是Java在财务领域中的一项基础应用,它体现了编程语言处理日常业务问题的能力。通过理解并实现这样的功能,开发者不仅可以加深对Java编程的理解,也能更好地服务于财务...

    oracle数字转换中文

    在财务模块的开发中,将数字转换成中文大写是必需的功能之一,尤其是在中国以及使用中文的地区。例如,在开具发票、合同等正式文档时,通常需要将金额数字转换为中文大写形式,以增加文档的正式性和防止篡改。 ####...

    会计阿拉伯数字转换中文大写

    阿拉伯数字(1、2、3等)是我们日常使用的数字系统,但在正式的会计文档中,通常需要将这些数字转换为中文大写(壹、贰、叁等),以防止篡改和提高审计准确性。在编程领域,尤其是使用Visual Basic (VB) 这样的语言...

    解析器模式范例:阿拉伯数字金额转为中文数字金额

    在这个阿拉伯数字到中文数字转换的例子中,我们利用这种模式构建了一个解析系统,它能够理解数字的读法规则,并将其转化为符合中文习惯的表达方式。通过学习和实践这个范例,开发者可以加深对解析器模式的理解,并将...

    这是一个可以将阿拉伯数字金额转换为中文大写金额的类,vb.net可用

    这是一个可以将阿拉伯数字金额转换为中文大写金额的类,vb.net可用

    mysql 函数,可以将数字转换为中文大写形式

    mysql 函数,可以将数字转换为中文大写形式。大写数字是中国特有的数字书写方式,利用与数字同音的汉字取代数字,以防止数目被涂改。 据考证,大写数字最早是由武则天发明,后经朱元璋改进完善。

    Android中数字转中文,金额转大写

    在Android开发中,有时我们需要将数字转换为中文或者将金额以大写的格式显示,这在财务应用或一些需要中文表示数字的场景中尤其常见。本文将深入探讨如何在Android环境中实现这一功能,包括数字转中文以及数字金额转...

Global site tag (gtag.js) - Google Analytics