import java.util.StringTokenizer;
public class moneyCap {
private final static String[] pattern = { "零", "壹", "贰", "叁", "肆", "伍",
"陆", "柒", "捌", "玖" };
private final static String[] cPattern = { "元", "拾", "佰", "仟", "万", "拾",
"佰", "仟", "亿" };
private final static String[] cfPattern = { "角", "分" };
private final String ZEOR = "零";
public static void main(String[] args) {
double n = 9010.45;
int k=0;
String s = String.valueOf(n);
String[] str = new String[2];
//将数字分解为整数和小数部分
StringTokenizer fenxi = new StringTokenizer(s, ".");
for (int i = 0; fenxi.hasMoreTokens(); i++)
str[i] = fenxi.nextToken();
// 转换成字符串数组处理
char a[] = str[0].toCharArray();
char b[] = str[1].toCharArray();
System.out.println(str[0] + " " + str[1]);
System.out.println(a.length + " " + b.length);
//整数部分处理
for (int j = 0; j < a.length - 1; j++) {
while (a[j] == '0') {
j++;
if(a.length-j==4&&a[j]=='0')
System.out.print("万零");
}
k=j-1;
if (j != 0 && a.length >4&&a.length<9&&a[k]=='0'&&(a.length-j)>4)
System.out.print("万零");
if (j != 0 && a[k]=='0'&&(a.length-j)==4)
System.out.print("万");
if (j != 0 &&a[k]=='0'&&(a.length-j)<4)
System.out.print("零");
if(a.length-j==1&&a[k]=='0')
{
break;
}
System.out.printf(toChinese(a[j]) + cPattern[a.length - j - 1]);
}
//最后一位单独处理
if (a[a.length - 1] == '0')
System.out.printf("元");
else
System.out.printf(toChinese(a[a.length - 1]) + "元");
//小数部分处理
if (str[1].equals("0"))
System.out.printf("整");
else {
for (int m = 0; m < b.length; m++) {
if (b[m] == '0')
System.out.printf("");
else
System.out.printf(toChinese(b[m]) + cfPattern[m]);
}
}
}
public static String toChinese(char ch)
{
String capital = null;
switch (ch) {
case '0':
capital = "零";
break;
case '1':
capital = "壹";
break;
case '2':
capital = "贰";
break;
case '3':
capital = "叁";
break;
case '4':
capital = "肆";
break;
case '5':
capital = "伍";
break;
case '6':
capital = "陆";
break;
case '7':
capital = "柒";
break;
case '8':
capital = "捌";
break;
case '9':
capital = "玖";
break;
}
return capital;
}
}
金额中文大写。。。细节有待完善
最新推荐文章于 2016-04-23 11:11:00 发布