用switch语句啊
将阿拉伯数字转为汉字

解决方案 »

  1.   


    public class test1 {    /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO 自动生成方法存根
            String str="100000000.00";
            String s=money2upper(str);
            System.out.println(s);    }    private static String money2upper(String s)
        {
            if (s == null || s.equals(""))
                return "";
            if (s.startsWith("¥") || s.startsWith("$"))
                s = s.substring(1);        String s1 = "" + s;
            String s2 = "Y";
            StringBuffer stringbuffer = new StringBuffer();
            int i = 0;
            boolean flag = true;
            i = 0;
            do
            {
                if (i >= s1.length())
                    break;
                if ((s1.charAt(i) < '0' || s1.charAt(i) > '9') && s1.charAt(i) != '.' && s1.charAt(i) != '-')
                {
                    flag = false;
                    break;
                }
                if (!s1.substring(i, i + 1).equals("0") && !s1.substring(i, i + 1).equals("-") && !s1.substring(i, i + 1).equals(".") && !s1.substring(i, i + 1).equals(" "))
                    break;
                i++;
            } while (true);
            if (!flag)
                return s;
            if (i == s1.length())
                if (s2.equalsIgnoreCase("N"))
                    return "";
                else
                    return "零元整";
            i = s1.indexOf("-");
            if (i > -1)
            {
                stringbuffer.append("负");
                s1 = s1.substring(i + 1);
            }
            String s3 = s1;
            String s4 = "00";
            i = s1.indexOf(".");
            if (i > -1)
            {
                s3 = s1.substring(0, i);
                s4 = s1.substring(i + 1);
                if (s4.length() == 0)
                    s4 = "00";
                if (s4.length() == 1)
                    s4 = s4 + "0";
            }
            boolean flag1 = false;
            if (s3.startsWith("0") && s3.endsWith("0"))
            {
                flag1 = true;
            } else
            {
                String s6 = "N";
                for (int j = 0; j < s3.length(); j++)
                {
                    String s7 = s3.substring(j, j + 1);
                    int k = s3.length() - j - 1;
                    if (s7.equals("0") && k != 0 && k != 4 && k != 8)
                    {
                        s6 = "Y";
                        continue;
                    }
                    if (s7.equals("0"))
                    {
                        s6 = "N";
                        String p1=stringbuffer.substring(stringbuffer.length()-1,stringbuffer.length());
                        String p2=addUnit(k);
                        System.out.println(p1+"  "+p2);
                        if(!(p1.equals("亿") && p2.equals("万")) ){
                           stringbuffer.append(addUnit(k));
                        }
                        continue;
                    }
                    if (s6.equals("Y"))
                    {
                        stringbuffer.append(dToU("0"));
                        s6 = "N";
                    }
                    stringbuffer.append(dToU(s7));
                    stringbuffer.append(addUnit(k));
                }        }
            long l = Long.parseLong(s4);
            for (int i1 = s4.length() - 2; i1 > 0; i1--)
            {
                long l1 = l % 10L;
                l /= 10L;
                if (l1 >= 5L)
                    l++;
            }        if (l == 0L)
            {
                stringbuffer.append("整");
            } else
            {
                String s5 = String.valueOf(l);
                if (s5.length() == 1)
                    s5 = "0" + s5;
                if (s5.startsWith("0") && !s5.endsWith("0"))
                {
                    if (!flag1)
                        stringbuffer.append("零");
                } else
                {
                    stringbuffer.append(dToU(s5.substring(0, 1)));
                    stringbuffer.append("角");
                }
                String s8 = s5.substring(1, 2);
                if (!s8.equals("0"))
                {
                    stringbuffer.append(dToU(s5.substring(1, 2)));
                    stringbuffer.append("分");
                } else
                {
                    stringbuffer.append("整");
                }
            }
            return stringbuffer.toString();
        }    private static String dToU(String s)
        {
            String s1 = "零壹贰叁肆伍陆柒捌玖";
            int i = Integer.parseInt(s);
            return s1.substring(i, i + 1);
        }    private static String addUnit(int i)
        {
            String s = "元拾佰仟万拾佰仟亿拾佰仟万";
            return s.substring(i, i + 1);
        }
    }