中文转数字

public class Test11 {
private String[] demon = {"零","一","二","三","四","五","六","七","八","九"};
private String[] dw = {"元","十","百","千","万","亿"};

public long returnIntValue(String valueStr){
   String[] parts = valueStr.split(dw[5]);
   if(parts.length>1){
    return returnIntValue(parts[0]+dw[0])*100000000+returnIntValue(parts[1]);
   }
   parts = valueStr.split(dw[4]);
   if(parts.length>1){
    return returnIntValue(parts[0]+dw[0])*10000+returnIntValue(parts[1]);
   }
   return returnSampleValue(valueStr);
}
public long returnSampleValue(String valueStr){
   valueStr = valueStr.replace("零", "");
   long plusValue = 10000,returnIntValue=0;
   String tempStr = ""; 
   for(int i=3;i>-1;i--){
    plusValue/=10;
    if(valueStr.indexOf(dw[i])>-1){
     tempStr = valueStr.substring(0,1);
     returnIntValue+=getSimpleIntValue(tempStr)*plusValue;
     valueStr = valueStr.substring(2,valueStr.length());
     if(valueStr.length()<2) return returnIntValue;
    }
   }
   return returnIntValue;
}
public int getSimpleIntValue(String valueStr){
   for(int i=0;i<demon.length;i++){
    if(valueStr.equals(demon[i]))
     return i;
   }
   return 0;
}
public static void main(String[] args){
   Test11 test = new Test11();
   System.out.println(test.returnIntValue("三千一百六十一万五千一百零八亿八千零七十万三千零五十元"));
}
}

你可能感兴趣的:(中文)