----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
package com.itcast.test;
enum Digit {
ZERO("零",0),ONE("壹",1),TWO("贰",2),THREE("叁",3),FOUR("肆",4),
FIVE("伍",5),SIX("陆",6),SEVEN("柒",7),EIGHT("捌",8),NINE("玖",9);
// 成员变量
private String chars;
private int digit;
// 构造方法
private Digit(String chars,int digit) {
this.chars = chars;
this.digit = digit;
}
// getter
public String getChars() {
return this.chars;
}
public int getDigit() {
return this.digit;
}
// 普通方法
public static String getChars(int digit) {
for(Digit d:Digit.values()) {
if(d.getDigit() == digit) {
return d.chars;
}
}
return null;
}
}
public class Conversion {
/**
* @param args
*/
private static final String[] units = new String[]{
"元","拾","佰","仟","万","拾","佰","仟","亿","拾"
};
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(convert(1234567890));
}
public static String convert(long money)
{
String str = String.valueOf(money);
StringBuilder sb = new StringBuilder();
int index = 0;
int digit = 0;
sb.insert(0,units[index]);
char[] charArray = str.toCharArray();
int [] intArray = new int[charArray.length];
for(int i = charArray.length - 1;i >= 0;i--) {
intArray[intArray.length - i - 1] = Character.getNumericValue(charArray[i]);
}
for(int i = 0;i < intArray.length;i++){
int preDigit = digit;// 前一个数字
digit = intArray[i];
String chars = Digit.getChars(digit);// 由阿拉伯数字获得对应的大写中文数字
if(digit != 0) {
sb.insert(0,units[index++]);
sb.insert(0,chars);
}
else if(digit == 0) {
if(preDigit != digit && i != 0) { // 两个连续的零只填入一个
sb.insert(0, "零");
}
if(index == 4 && intArray.length > 7 ) {
if(intArray[5] != 0 || intArray[6] != 0 || intArray[7] != 0){
sb.insert(0,"万");
}
}
// long型整数最大长度为10位
if(index == 8 && intArray[9] != 0) {
sb.insert(0, "亿");
}
index++;
}
}
return sb.toString();
}
}
//金额转换,阿拉伯数字的金额转换成中国传统的形式
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------