okokokk 发表于 2017-6-10 18:14:15

金额转换题,个位数显示不出

public class Change {
       public String change(String m){
               StringBuffer re=new StringBuffer("");
              int i=0;
              int j=0;
              i=m.lastIndexOf(".");
              if(i==-1) i=m.length();
              String b=m.substring(0, i);
              char[] c=b.toCharArray();
              StringBuffer s=null;
              for(i=c.length-1,j=0;
              i>=0;i--,j++){
                      s=new StringBuffer("");
                      if(i!=c.length-1 && c!='0') s.append(changeNum(c));
                      if(c!='0'){
                             switch (j%4){
                                     case 1:s.append("拾");
                                     break;
                                     case 2:s.append("佰");
                                     break;
                                     case 3:s.append("仟");
                                     break;
                                     default :break;
                                     }
                                    }
                                    if(j!=0 && j%8==0) s.append("亿");
                                    else if (j!=0 && j%4==0){
                                            s.append("万");
                                           }
                                              re=s.append(re);
                                              }
                                              re.append("元");
                                              i=m.lastIndexOf(".");
                                               String d=null;
                                               if(i!=-1){
                                                       d=m.substring(i+1,m.length());
                                                       char[] e=d.toCharArray();
                                                       if(e.length==1) if(e!='0')
                                                       re.append("零").append(changeNum(e)).append("角").toString();
                                                       if(e.length==2) if(e!='0' || e!='0')
                                                       re.append("零");
                                                       if(e!='0')
                                                       re.append(changeNum(e)).append("角").toString();
                                                       if(e!='0')
                                                       re.append(changeNum(e)).append("分").toString();
                                                       }
                                                       return re.toString();
                                                       }
                                                       public String changeNum(char c){
                                                              String[] n={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; return n;
                                                                 }
                                                                 public static void main(String[] args) {
                                                                         Change c=new Change(); System.out.print(c.change("123458.78"));
                                                                        }
}

页: [1]
查看完整版本: 金额转换题,个位数显示不出