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

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

 
阅读更多

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 "";
}
}


}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics