把錢幣大寫 轉為 數字的Java代碼

d6nd 9年前發布 | 1K 次閱讀 Java

把錢幣大寫 轉為 數字的Java代碼

import java.text.DecimalFormat;

public class Mm { /**

  • 轉億以下的
  • @param str
  • @return */
    public static double b2s(String str){ str=str.replaceAll("零", ""); double sum=0; int index=str.indexOf("億"); if (index>0){

         String temp=str.substring(0,index );
         str=str.substring(index+1);
         sum=sum+w(temp)*100000000;
    

    } index=str.indexOf("萬"); if (index>0){

     String temp=str.substring(0,index );
     str=str.substring(index+1);
     sum=sum+w(temp)*10000;
    

    } index=str.indexOf("元"); if (index>0){

     String temp=str.substring(0,index );
     str=str.substring(index+1);
     sum=sum+w(temp);
    

    } index=str.indexOf("角"); if (index>0){

     String temp=str.substring(0,index );
     str=str.substring(index+1);
     sum=sum+str2num(temp)*0.1;
    

    } index=str.indexOf("分"); if (index>0){

     String temp=str.substring(0,index );
     str=str.substring(index+1);
     sum=sum+str2num(temp)*0.01;
    

    }

    return sum; } /**

  • 大寫轉小寫
  • @param str
  • @return */ public static int str2num(String str){ String[] daxie={"壹","貳","叁","肆","伍","陸","柒","捌","玖"}; int[] num={1,2,3,4,5,6,7,8,9}; for (int i = 0; i < daxie.length; i++) {
       if ( str.equals( daxie[i] ) ) {
            return num[i];
       }
     }
    
    return 0; } /**
  • @see 轉萬以下的
  • @param str
  • @return */ public static double w(String str){ double sum=0; int index=str.indexOf("仟"); if (index>0){

     String temp=str.substring(0,index );
     str=str.substring(index+1);
     sum=sum+str2num(temp)*1000;
    

    } index=str.indexOf("佰"); if (index>0){

     String temp=str.substring(0,index );
     str=str.substring(index+1);
     sum=sum+str2num(temp)*100;
    
    

    } index=str.indexOf("拾"); if (index>0){

     String temp=str.substring(0,index );
     str=str.substring(index+1);
     sum=sum+str2num(temp)*10;
    

    } if (str.length()>0) {

     sum=sum+str2num(str) ;
    

    } return sum; } public static void main(String[] args) { DecimalFormat df=new DecimalFormat(); df.setMinimumFractionDigits(2); df.setMaximumFractionDigits(2); System.out.println(df.format(b2s("壹仟萬零伍佰壹拾玖元捌角陸分") )); }

}</pre>

 本文由用戶 d6nd 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!