buf.append("整");
}
}
String result = buf.toString();
if (isNegative) {
return "人民币负" + result;
} else {
return "人民币" + result;
}
}
//四位整数转换成大写金额
private static String changeFourDigists(int number) {
if (number == 0) {
return "零";
}
StringBuilder buf = new StringBuilder();
//千位数部分
int qianPart = number / 1000;
number = number % 1000;
//百位数部分
int baiPart = number / 100;
number = number % 100;
//十位数部分
int shiPart = number / 10;
number = number % 10;
//个位数部分
int gePart = number;
//是否需要添零
boolean needZero = false;
//前面是否有值
boolean havaValueBefore = false;
if (qianPart > 0) {
buf.append(RMB_CAPITAL[qianPart]).append("仟");
havaValueBefore = true;
} else {
havaValueBefore = false;
}
if (baiPart > 0) {
buf.append(RMB_CAPITAL[baiPart]).append("佰");
havaValueBefore = true;
} else {
if (havaValueBefore) {
needZero = true;
}
}
if (shiPart > 0) {
if (needZero) {
buf.append("零");
needZero = false;
}
buf.append(RMB_CAPITAL[shiPart]).append("拾");
havaValueBefore = true;
} else {
if (havaValueBefore) {
needZero = true;
}
if (gePart > 0) {
if (needZero) {
buf.append("零");
needZero = false;
}
buf.append(RMB_CAPITAL[gePart]);
}
return buf.toString();
}
public Double unformat(String data) {
boolean isNegative = false;
if (data.startsWith("人民币")) {
data = data.substring(3);
}
if (data.startsWith("负")) {
isNegative = true;
data = data.substring(1);
}
//整数部分
long intPart = 0;
//小数部分
int fractionPart = 0;
//千分位部分
int qianPart = 0;
//百分位部分
int baiPart = 0;
//十分位部分
int shiPart = 0;
//个位部分
int gePart = 0;
while(data.length() > 0) {
String token = data.substring(0, 1);
if (token.equals("零")) {
} else if (token.equals("整") || token.equals("正")) {
break;
} else if (token.equals("角")) {
shiPart = gePart * 10;
gePart = 0;
} else if (token.equals("分")) {
fractionPart += shiPart + gePart;
shiPart = 0;
gePart = 0;
break;
} else if (token.equals("圆") || token.equals("元")) {
intPart += qianPart + baiPart + shiPart + gePart;
qianPart = 0;
baiPart = 0;
shiPart = 0;
gePart = 0;
} else if (token.equals("拾")) {
shiPart = gePart * 10;
gePart = 0;
} else if (token.equals("佰")) {
baiPart = g