Java 怎么把大写金额挨个截取出来!?-灵析社区

乘03060920

![](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250103/670272201ecc5bafcd47e5b94eea4016.png) 如图,左侧是小写的金额,需求是把小写金额转成大写金额,并且把大写金额拆开,分别填入到右侧表格中,因为这是我后端生成PDF,需要把值写到PDF中去。 我试了好多种截取字符串的方式都行不通,还请各位给指点指点! 这是数字金额转大写金额的方法 public static String changeCH(BigDecimal money) { double v = money.doubleValue(); if (!(v 9.99999999999999E12D)) { long l = Math.round(v * 100.0D); if (l == 0L) { return "零元整"; } else { String strValue = l + ""; int i = 0; int j = "万仟佰拾亿仟佰拾万仟佰拾元角分".length() - strValue.length(); String rs = ""; for(boolean isZero = false; i < strValue.length(); ++j) { char ch = strValue.charAt(i); if (ch == '0') { isZero = true; if ("万仟佰拾亿仟佰拾万仟佰拾元角分".charAt(j) == 20159 || "万仟佰拾亿仟佰拾万仟佰拾元角分".charAt(j) == 19975 || "万仟佰拾亿仟佰拾万仟佰拾元角分".charAt(j) == 20803) { rs = rs + "万仟佰拾亿仟佰拾万仟佰拾元角分".charAt(j); isZero = false; } } else { if (isZero) { rs = rs + "零"; isZero = false; } rs = rs + "零壹贰叁肆伍陆柒捌玖".charAt(ch - 48) + "万仟佰拾亿仟佰拾万仟佰拾元角分".charAt(j); } ++i; } if (!rs.endsWith("分")) { rs = rs + "整"; } rs = rs.replaceAll("亿万", "亿"); return rs; } } else { return "参数非法!"; } }

阅读量:20

点赞量:0

问AI
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241204/64c64dcd1ce74b6bc5724bcfee03e3dc.png) 看下我这结果是不是你要的 public class Main { public static void main(String[] args) { String bigNumberStr = "零壹贰叁肆伍陆柒捌玖"; String string = "123465456"; double number = new Double(string); string = String.format("%.2f", number).toString(); string = string.replace(".", ""); String result = ""; for(int i = 0; i < string.length(); i++) { char ch = string.charAt(i); int num = Integer.valueOf(String.valueOf(ch)); result = result.concat(String.valueOf(bigNumberStr.charAt(num))); } System.out.println(result); } }