当前位置: 首页 > 知识库问答 >
问题:

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

黄跃
2023-10-25


如图,左侧是小写的金额,需求是把小写金额转成大写金额,并且把大写金额拆开,分别填入到右侧表格中,因为这是我后端生成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 "参数非法!";        }    }

共有2个答案

有权
2023-10-25
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;    }}
郑松
2023-10-25

image.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);    }}
 类似资料:
  • 本文向大家介绍Java金额大小写的转换方法,包括了Java金额大小写的转换方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Java金额大小写转换的具体代码,供大家参考,具体内容如下 运行结果为: 1.23 壹元贰角叁分  1234567890123456.123 壹仟贰佰叁拾肆万伍仟陆佰柒拾捌亿玖仟零壹拾贰万叁仟肆佰伍拾陆元壹角贰分叁厘  0.0798 柒分玖厘  10,001,

  • 本文向大家介绍JAVA实现数字大写金额转换的方法,包括了JAVA实现数字大写金额转换的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JAVA实现数字大写金额转换的方法。分享给大家供大家参考。具体如下: 例子:实现将阿拉伯数字的金额转换成中文大写金额的形式,例如: ¥1011 → 壹仟零壹拾壹元整。 大写数字为:零、壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿 希望本文所述对

  • 本文向大家介绍C#把数字转换成大写金额的代码实例,包括了C#把数字转换成大写金额的代码实例的使用技巧和注意事项,需要的朋友参考一下 实现代码:

  • 问题内容: 我有一个WSDL文件,我需要将其转换为Java,为此,我使用下面链接中的分步过程 http://axis.apache.org/axis2/java/core/tools/eclipse/wsdl2java- plugin.html 就像将axis2 codegen jar文件添加到eclipse文件夹中的dropins文件夹中并重新启动eclipse一样,但是我在eclipse ID

  • 在windows环境下 运行结果为 有没有方式可以在控制台不格式化显示,而把原样的换行符打印出来,类似下面这样

  • 本文向大家介绍用js实现小写金额转大写的方法相关面试题,主要包含被问及用js实现小写金额转大写的方法时的应答技巧和注意事项,需要的朋友参考一下