小寫數字與啊啦伯字數間的轉換

package project;

public class Mproject {

   // 整數部分
   private String integerPart;
   // 小數部分
   private String floatPart;
 
   // 將數字轉化爲漢字的數組,因爲各個實例都要使用所以設爲靜態
   private static final char[] cnNumbers={'零','壹','貳','叄','肆','伍','陸','柒','捌','玖'};
 
   // 供分級轉化的數組,因爲各個實例都要使用所以設爲靜態
   private static final char[] series={'元','拾','百','仟','萬','拾','百','仟','億'};
 
   /**
    * 構造函數,通過它將阿拉伯數字形式的字符串傳入
    * @param original
    */
   public Mproject(String original){
     // 成員變量初始化
     integerPart="";
     floatPart="";
   
     if(original.contains(".")){
       // 如果包含小數點
       int dotIndex=original.indexOf(".");
       integerPart=original.substring(0,dotIndex);
       floatPart=original.substring(dotIndex+1);
     }
     else{
       // 不包含小數點
       integerPart=original;
     }
   }
 
   /**
    * 取得大寫形式的字符串
    * @return
    */
   public String getCnString(){
     // 因爲是累加所以用StringBuffer
     StringBuffer sb=new StringBuffer();
   
     // 整數部分處理
     for(int i=0;i<integerPart.length();i++){
       int number=getNumber(integerPart.charAt(i));
     
       sb.append(cnNumbers[number]);
       sb.append(series[integerPart.length()-1-i]);
     }
   
     // 小數部分處理
     if(floatPart.length()>0){
       sb.append("點");
       for(int i=0;i<floatPart.length();i++){
         int number=getNumber(floatPart.charAt(i));
       
         sb.append(cnNumbers[number]);
       }
     }
   
     // 返回拼接好的字符串
     return sb.toString();
   }
 
   /**
    * 將字符形式的數字轉化爲整形數字
    * 因爲所有實例都要用到所以用靜態修飾
    * @param c
    * @return
    */
   private static int getNumber(char c){
     String str=String.valueOf(c); 
     return Integer.parseInt(str);
   }
  
 /**
  * @param args
  */
 public static void main(String[] args) {
  System.out.println(new Mproject("123456789.12345").getCnString());
     System.out.println(new Mproject("123456789").getCnString());
     System.out.println(new Mproject(".123456789").getCnString());
     System.out.println(new Mproject("0.1234").getCnString());
     System.out.println(new Mproject("1").getCnString());
     System.out.println(new Mproject("12").getCnString());
     System.out.println(new Mproject("123").getCnString());
     System.out.println(new Mproject("1234").getCnString());
     System.out.println(new Mproject("12345").getCnString());
     System.out.println(new Mproject("123456").getCnString());
     System.out.println(new Mproject("1234567").getCnString());
     System.out.println(new Mproject("12345678").getCnString());
     System.out.println(new Mproject("123456789").getCnString());
 }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章