JAVA代码查错题(三)

2014-11-23 21:41:17 · 作者: · 浏览: 32
umberFormat.format(moneyInt));


}


public String format(long moneyLong) {


return format(numberFormat.format(moneyLong));


}


public String format(Number moneyNum) {


return format(numberFormat.format(moneyNum));


}


private String convertToChineseNumber(String moneyStr) {


String result;


StringBuffer cMoneyStringBuffer = new StringBuffer();


for (int i = 0; i < moneyStr.length(); i++) {


cMoneyStringBuffer.append(chineseNumberMap.get(moneyStr.substring(i, i + 1)));


}


//拾佰仟万亿等都是汉字里面才有的单位,加上它们


int indexOfDot = cMoneyStringBuffer.indexOf(DOT);


int moneyPatternCursor = 1;


for (int i = indexOfDot – 1; i > 0; i–) {


cMoneyStringBuffer.insert(i, chineseMoneyPattern.get(EMPTY + moneyPatternCursor));


moneyPatternCursor = moneyPatternCursor == 8 1 : moneyPatternCursor + 1;


}


String fractionPart = cMoneyStringBuffer.substring(cMoneyStringBuffer.indexOf(“.”));


cMoneyStringBuffer.delete(cMoneyStringBuffer.indexOf(“.”), cMoneyStringBuffer.length());


while (cMoneyStringBuffer.indexOf(“零拾”) != -1) {


cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(“零拾”), cMoneyStringBuffer.indexOf(“零拾”) + 2, ZERO);


}


while (cMoneyStringBuffer.indexOf(“零佰”) != -1) {


cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(“零佰”), cMoneyStringBuffer.indexOf(“零佰”) + 2, ZERO);


}


while (cMoneyStringBuffer.indexOf(“零仟”) != -1) {


cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(“零仟”), cMoneyStringBuffer.indexOf(“零仟”) + 2, ZERO);


}


while (cMoneyStringBuffer.indexOf(“零万”) != -1) {


cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(“零万”), cMoneyStringBuffer.indexOf(“零万”) + 2, TEN_THOUSAND);


}


while (cMoneyStringBuffer.indexOf(“零亿”) != -1) {


cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(“零亿”), cMoneyStringBuffer.indexOf(“零亿”) + 2, HUNDRED_MILLION);


}


while (cMoneyStringBuffer.indexOf(“零零”) != -1) {


cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(“零零”), cMoneyStringBuffer.indexOf(“零零”) + 2, ZERO);


}


if (cMoneyStringBuffer.lastIndexOf(ZERO) == cMoneyStringBuffer.length() – 1)


cMoneyStringBuffer.delete(cMoneyStringBuffer.length() – 1, cMoneyStringBuffer.length());


cMoneyStringBuffer.append(fractionPart);


result = cMoneyStringBuffer.toString();


return result;


}


private String addUnitsToChineseMoneyString(String moneyStr) {


String result;


StringBuffer cMoneyStringBuffer = new StringBuffer(moneyStr);


int indexOfDot = cMoneyStringBuffer.indexOf(DOT);


cMoneyStringBuffer.replace(indexOfDot, indexOfDot + 1, YUAN);


********************************************