人民币大写转阿拉伯数字的工具类,简单粗暴的替换就完事了
import java.util.HashMap;
import java.util.Map;
public class ValueConvertUtil {
/**
* 将大写金额转换为字符串形式的阿拉伯数字。
* 支持小于一万亿的数字,可精确到小数点后两位
* 如果大写金额的格式错误,本函数不保证能范围正确的结果(废话..)
*/
public static String formatAmount(String cnTraditionalNum) {
//规范错误字符
cnTraditionalNum = cnTraditionalNum
.replaceAll("億", "亿")
.replaceAll("萬", "万")
.replaceAll("千", "仟")
.replaceAll("任", "仟")
.replaceAll("阡", "仟")
.replaceAll("百", "佰")
.replaceAll("陌", "佰")
.replaceAll("元", "圆")
.replaceAll("圓", "圆")
//.replaceAll("廿", "贰拾")
//.replaceAll("念", "贰拾")
//.replaceAll("卅", "叁拾")
//.replaceAll("卌", "肆拾")
//.replaceAll("圩", "伍拾")
//.replaceAll("圆", "陆拾")
//.replaceAll("进", "柒拾")
//.replaceAll("枯", "捌拾")
//.replaceAll("枠", "玖拾")
;
long result = 0;
if (cnTraditionalNum.contains("亿")) {
String yi = cnTraditionalNum.substring(0, cnTraditionalNum.indexOf("亿"));
result += cnThousandNumberToArab(yi) * 100000000L;
cnTraditionalNum = cnTraditionalNum.substring(cnTraditionalNum.indexOf("亿"));
}
if (cnTraditionalNum.contains("万")) {
String wan = cnTraditionalNum.substring(0, cnTraditionalNum.indexOf("万"));
result += cnThousandNumberToArab