我写了一个,但是有点问题,请大家帮忙。
package my;public class bb {
public static void main(String []args){
bb b = new bb();
        System.out.println(b.numToUpper(1078304688));
}
 public String numToUpper(int i) {
        String s = "\u96F6\u58F9\u8D30\u53C1\u8086\u4F0D\u9646\u67D2\u634C\u7396";
        String s1 = "\u3000\u62FE\u4F70\u4EDF\u4E07\u62FE\u4F70\u4EDF\u4EBF\u62FE\u4F70\u4EDF";
        String s2 = Integer.toString(i);
        String s3 = "";         
        int j = s2.length();
        System.out.println(s);
        System.out.println(s1);
        for (int k = 0; k < j; k++) {
            String s5 = s2.substring(k, k + 1);
            String s8 = s.substring(Integer.parseInt(s5),
                    Integer.parseInt(s5) + 1);
            //System.out.println(s8);
            String s10 = s1.substring(j - k - 1, j - k);
            System.out.println("a"+s10);
            if (Integer.parseInt(s2.substring(k, j)) != 0) {
                if (!s5.equals("0")) {
                    s3 = s3 + s8 + s10;
                } else if ((k > 0) && !s2.substring(k - 1, k).equals("0")) {
                    s3 = s3 + s8;
                }
            }             if (j == 1) {
                String s6 = s2.substring(k, k + 1);
                s3 = s.substring(Integer.parseInt(s6), Integer.parseInt(s6) +
                        1);
            }
        }
        if (j>=6&&s2.substring(1,6).equals("00000")){
             s3=s3+"万"  ;
        }
        return s3;
    }
}

解决方案 »

  1.   

    public class bb {
    public static void main(String []args){
    bb b = new bb();
    System.out.println(b.numToUpper(1078304688));
    }
    public String numToUpper(int i) {
    String s = "\u96F6\u58F9\u8D30\u53C1\u8086\u4F0D\u9646\u67D2\u634C\u7396";
    String s1 = "\u3000\u62FE\u4F70\u4EDF\u4E07\u62FE\u4F70\u4EDF\u4EBF\u62FE\u4F70\u4EDF";
    String s2 = Integer.toString(i);
    String s3 = "";
    int j = s2.length();
    System.out.println(s);
    System.out.println(s1);
    for (int k = 0; k < j; k++) {
    String s5 = s2.substring(k, k + 1);
    String s8 = s.substring(Integer.parseInt(s5),
    Integer.parseInt(s5) + 1);
    //System.out.println(s8);
    String s10 = s1.substring(j - k - 1, j - k);
    System.out.println("a"+s10);
    if (Integer.parseInt(s2.substring(k, j)) != 0) {
    if (!s5.equals("0")) {
    s3 = s3 + s8 + s10;
    } else if ((k > 0) && !s2.substring(k - 1, k).equals("0")) {
    s3 = s3 + s10;
    }
    }if (j == 1) {
    String s6 = s2.substring(k, k + 1);
    s3 = s.substring(Integer.parseInt(s6), Integer.parseInt(s6) +
    1);
    }
    }
    if (j>=6&&s2.substring(1,6).equals("00000")){
    s3=s3+"万" ;
    }
    return s3;
    }
    }
    上面的应该符合你的要求。就是把
    if (!s5.equals("0")) {
    s3 = s3 + s8 + s10;
    } else if ((k > 0) && !s2.substring(k - 1, k).equals("0")) {
    s3 = s3 + s8;
    }
    改成:
    if (!s5.equals("0")) {
    s3 = s3 + s8 + s10;
    } else if ((k > 0) && !s2.substring(k - 1, k).equals("0")) {
    s3 = s3 + s10;
    }
      

  2.   

    你哪样改不对啊,有问题,我这样改之后就行了。
    package p200609;public class p15 {
    public static void main(String []args){
    p15 p1=new p15();
    System.out.print(p1.numToUpper(123456789));
    }
    public String numToUpper(int i){
    String s="\u96F6\u58F9\u8D30\u53c1\u8086\u4F0D\u9646\u67D2\u634C\u7396";
    String s1="\u3000\u62FE\u4F70\u4EDF\u4E07\u62FE\u4F70\u4EDF\u4EBF\u62FE\u4F70\u4EDF";
    String s2=Integer.toString(i);
    String s3="";
    int j=s2.length();
    for(int k=0;k<j;k++){
    String s4=s2.substring(k,k+1);//s4取的是s2的每一位
    String s5=s.substring(Integer.parseInt(s4),Integer.parseInt(s4)+1);//s5取的是大写的具体哪一位
    String s6=s1.substring(j-k-1,j-k);//s6取的是是哪一位(拾,佰)
    if(i!=0){
    if(!s4.equals("0")){s3=s3+s5+s6;}
    }
    if(j==1){
    String s7=s2.substring(k,k+1);
    s3=s.substring(Integer.parseInt(s7),Integer.parseInt(s7)+1);}
    }
       if(j>=6&&s2.substring(1,6).equals("00000")&&(!s2.substring(1,j).equals("00000000"))){
      s3=s3+"万";
       }
    return s3;
    }

       

    }