我感觉没啥好说的,就是挺乱的,耐心点慢慢写

import java.util.*;

public class Main {
    //准备
    static List<String> list = Arrays.asList("零", "壹", "贰", "叁", "肆",
                               "伍", "陆", "柒", "捌", "玖");

    static boolean isBilllion = false;
    static boolean isMillon = false;

    public static void main(String[] args)  {
        Scanner scan = new Scanner(System.in);
        String input = scan.nextLine();
        String before = input.split("\\.")[0];
        String after = input.split("\\.")[1];
        long beforeNum = Long.parseLong(before);


        StringBuilder sb = new StringBuilder("人民币");
        //判断小数点之前
        if (beforeNum / 100000000 != 0) {
            isBilllion = true;
            sb.append(output(0, (int) beforeNum / 100000000)).append("亿");
        }
        if (beforeNum % 100000000 / 10000 != 0) {
            isMillon = true;
            sb.append(output(1, (int)beforeNum % 100000000 / 10000)).append("万");
        }
        if (beforeNum % 10000 != 0) {
            sb.append(output(2, (int)beforeNum % 100000000 % 10000)).append("元");
        }


        //判断小数点之后
        if (after.equals("00")) {
            sb.append("整");
        } else {
            int index1 = after.charAt(0) - '0';
            if (index1 > 0) sb.append(list.get(index1)).append("角");
            int index2 = after.charAt(1) - '0';
            if (index2 > 0) sb.append(list.get(index2)).append("分");

        }

        //输出
        System.out.println(sb.toString());


    }

    public static String output(int flag, int input) {
        String res = "";

        int x = 1000;
        while (x > 0) {
            int quotient = input / x;
            if (quotient == 0) {
                if (x == 1000) {
                    if (flag == 0) res += "";
                    if (flag == 1) res += isBilllion ? "零" : "";
                } else {
                    if (res.equals("零")) {
                        res += "";
                    } else if (!res.equals("")) {
                        res += "零";
                    }
                }

            } else if (quotient > 0) {
                String tail = x == 1000 ? "仟" : (x == 100 ?  "佰" : (x == 10 ? "拾" : ""));
                if (quotient == 1 && x == 10) {
                    res += "拾";
                } else {
                    res += list.get(quotient) + tail;
                }

            }
            input = input % x;
            x /= 10;
        }



//         if (input / 1000 == 0) {
//             if (flag == 0) res += "";
//             if (flag == 1 && isBilllion) {
//                 res += "零";
//             } else if (flag == 1) {
//                 res += "";
//             }
//         } else if (input / 1000 > 0) {
//             res += list.get((int)input / 1000) + "仟";
//         }

//         if (input % 1000 / 100 == 0 ) {
//             if (res.equals("零")) {
//                 res += "";
//             } else if (!res.equals("")) {
//                 res += "零";
//             }
//         } else if (input % 1000 / 100 > 0) {
//             res += list.get((int)input % 1000 / 100) + "佰";
//         }

//         if (input % 100 / 10 == 0 ) {
//             if (res.equals("零")) {
//                 res += "";
//             } else if (!res.equals("")) {
//                 res += "零";
//             }
//         } else if (input % 100 / 10 > 0) {
//             if (input % 100 / 10 == 1) {
//                 res += "拾";
//             } else {
//                 res += list.get((int)input % 100 / 10) + "拾";
//             }

//         }

//         if (input % 10 == 0 ) {
//             if (res.equals("零")) {
//                 res += "";
//             } else if (!res.equals("")) {
//                 res += "零";
//             }
//         } else if (input % 10 > 0) {
//             res += list.get((int)input % 10);
//         }

        return res;
    }
}