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

    技术2026-09-14  18

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

     

    最新回复(0)