整数部分每四位进行分段,根据数据的长度分别进行转换。

import java.util.*;
public class Main {
    public static HashMap<Integer, String> map = new HashMap<>();
    static {
        map.put(1, "壹");
        map.put(2, "贰");
        map.put(3, "叁");
        map.put(4, "肆");
        map.put(5, "伍");
        map.put(6, "陆");
        map.put(7, "柒");
        map.put(8, "捌");
        map.put(9, "玖");
        map.put(10, "拾");
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        String[] s = str.split("\\.");
        int len = s[0].length();
        StringBuilder sb = new StringBuilder();
        sb.append("人民币");
        if (len > 0 && len <= 4) {
            sb.append(changeStr(s[0]));
            if (s[0].replaceAll("0", "").length() > 0) {
                sb.append("元");
            }
        } else if (len > 4 && len <= 8) {
            sb.append(changeStr(s[0].substring(0, len - 4)));
            sb.append("万");
            if (len == 5 && s[0].substring(len - 4).startsWith("0")) {
                sb.append("零");
            }
            sb.append(changeStr(s[0].substring(len - 4)));
            sb.append("元");
        } else if (len > 8 && len <= 12) {
            sb.append(changeStr(s[0].substring(0, len - 8)));
            sb.append("亿");
            sb.append(changeStr(s[0].substring(len - 8, len - 4)));
            if (!"0000".equals(s[0].substring(len - 8, len - 4))) {
                sb.append("万");
            }
            sb.append(changeStr(s[0].substring(len - 4)));
            sb.append("元");
        }
        if ("00".equals(s[1])) {
            sb.append("整");
        } else {
            int x = s[1].charAt(0) - '0';
            int y = s[1].charAt(1) - '0';
            if (x != 0) {
                sb.append(map.get(x) + "角");
            }
            if (y != 0) {
                sb.append(map.get(y) + "分");
            }
        }
        System.out.println(sb);
    }

    public static String changeStr(String s) {
        String ss = ("0000" + s).substring(s.length());
        int a = ss.charAt(0) - '0';
        int b = ss.charAt(1) - '0';
        int c = ss.charAt(2) - '0';
        int d = ss.charAt(3) - '0';
        StringBuilder sb = new StringBuilder();
        if (a != 0) {
            sb.append(map.get(a) + "仟");
        }

        if (b != 0) {
            sb.append(map.get(b) + "佰");
        } else if (a != 0 && (c != 0 || d != 0)) {
            sb.append("零");
        }

        if (c == 1) {
            sb.append("拾");
        } else if (c != 0) {
            sb.append(map.get(c) + "拾");
        } else if (b != 0 && d != 0) {
            sb.append("零");
        }

        if (d != 0) {
            sb.append(map.get(d));
        }
        return sb.toString();
    }
}