1. 程式人生 > >將阿拉伯數字轉換成大寫形式(完整)

將阿拉伯數字轉換成大寫形式(完整)

public class Test
{
 public String transfer(String number)
 {
  String result = "";
  boolean flag1 = true;//用來控制輸不輸出零
  boolean flag2 = true;//用來控制輸出萬或億
  int length = number.length();
  for(int i=length-1,j=1;i>=0;i--,j++)
  {
   String str = toCharacter(number.charAt(i));
   if(str.equals("format error!"))
   {
    return "格式不正確";
   }
   int m = j%4;
   if(m == 1)
   {
    if(!str.equals(""))
    {
     result = str + result;
     flag1 = true;
    }
    else flag1 = false;
   }
   if(m == 2)
   {
    if(str.equals(""))
    {
     if(flag1)
     {
      result = "零" + result;
      flag1 = false;
     }
    }
    else
    {
     result = str + "拾" + result;
     flag1 = true;
    }
   }
   if(m == 3)
   {
    if(str.equals(""))
    {
     if(flag1)
     {
      result = "零" + result;
      flag1 = false;
     }
    }
    else
    {
     result = str + "佰" + result;
     flag1 = true;
    }
   }
   if(m == 0)
   {
    if(str.equals(""))
    {
     if(flag1)
     {
      result = "零" + result;
      flag1 = false;
     }
    }
    else
    {
     result = str + "仟" + result;
     flag1 = true;
    }
    
    if(i>0)
    {
     if(flag2)
     {
      result = "萬" + result;
      flag2 = false;
     }
     else
     {
      result = "億" + result;
      flag2 = true;
     }
    }
   }
  }
  
  System.out.println("******"+result+"******");
  result = delUnwantedMyriad(result);
  
  return result;  
 }
 
 private String toCharacter(char c)
 {
  if(c == '0') return "";
  else if(c == '1') return "壹";
  else if(c == '2') return "貳";
  else if(c == '3') return "叄";
  else if(c == '4') return "肆";
  else if(c == '5') return "伍";
  else if(c == '6') return "陸";
  else if(c == '7') return "柒";
  else if(c == '8') return "捌";
  else if(c == '9') return "玖";
  else return "format error!";
 }
 
 //刪除多餘的“萬”字
 private String delUnwantedMyriad(String str)
 {
  int length = str.length();
  
  int pos = str.indexOf("億");
  while(pos != -1)
  {
   if(str.charAt(pos+1) == '萬')
   {
    str = str.substring(0,pos+1) + str.substring(pos+2);
   }
   
   pos = str.indexOf("億",pos+1);
  }
  
  return str;
 }
 
 public static void main(String[] args)
 {
  Test test = new Test();
  String result = test.transfer("10000000050");
  System.out.println(result);
 }
}