Java 怎么把大写金额挨个截取出来!?


如图,左侧是小写的金额,需求是把小写金额转成大写金额,并且把大写金额拆开,分别填入到右侧表格中,因为这是我后端生成PDF,需要把值写到PDF中去。 我试了好多种截取字符串的方式都行不通,还请各位给指点指点!

这是数字金额转大写金额的方法

public static String changeCH(BigDecimal money) {

double v = money.doubleValue();

if (!(v < 0.0D) && !(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 "参数非法!";

}

}


回答:


看下我这结果是不是你要的

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);

}

}


回答:

import java.math.BigDecimal;

import java.util.ArrayList;

import java.util.List;

public class AmountToChinese {

public static void main(String[] args) {

BigDecimal amount = new BigDecimal("156900546.25");

String chineseAmount = changeCH(amount);

List<String> splittedChineseAmount = splitChineseAmount(chineseAmount);

// 打印拆分后的大写金额字符

for (String s : splittedChineseAmount) {

System.out.println(s);

}

}

// 这是你提供的方法

public static String changeCH(BigDecimal money) {

// ... 你的代码 ...

}

public static List<String> splitChineseAmount(String chineseAmount) {

List<String> result = new ArrayList<>();

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

result.add(String.valueOf(chineseAmount.charAt(i)));

}

return result;

}

}

以上是 Java 怎么把大写金额挨个截取出来!? 的全部内容, 来源链接: utcz.com/p/945389.html

回到顶部