NumberTest.java


Dosyayı İndir
public class NumberTest{
  public static final String NUMBER_1="bir";
  public static final String NUMBER_2="iki";
  public static final String NUMBER_3="üç";
  public static final String NUMBER_4="dört";
  public static final String NUMBER_5="beş";
  public static final String NUMBER_6="altı";
  public static final String NUMBER_7="yedi";
  public static final String NUMBER_8="sekiz";
  public static final String NUMBER_9="dokuz";
  public static final String NUMBER_10="on";
  public static final String NUMBER_20="yirmi";
  public static final String NUMBER_30="otuz";
  public static final String NUMBER_40="kırk";
  public static final String NUMBER_50="elli";
  public static final String NUMBER_60="altmış";
  public static final String NUMBER_70="yetmiş";
  public static final String NUMBER_80="seksen";
  public static final String NUMBER_90="doksan";
  public static final String NUMBER_100="yüz";
  public static final String NUMBER_1000="bin";
  public static final String NUMBER_MILLION="milyon";
  public static final String NUMBER_MILLIARD="milyar";
  public static final String NUMBER_TRILLION="trilyon";
  public String read(String number){
    int length=number.length();
    int level=(int)((length-1)/3)+1;
    String result="";
    for(int i=0;i<level;i++){
      int start=0;
      if(i!=(level-1)){
        start=length-3*(i+1);
      }
      int finish=length-3*(i);
      String block=number.substring(start,finish);
      result=readNumber(block,i+1)+result;
    }
    return result;
  }
  private String readNumber(String number,int level){
    if(level==1){
      return readThreeNumber(number);
    }else if(level==2){
      return readThousand(number);
    }else{
      return readBigNumber(number,level);
    }
  }
  private String readThreeNumber(String number){
    String result="";
    int location=1;
    for(int i=number.length()-1;i>=0;i--){
      String s=number.substring(i,i+1);
      if(location==1){
        result=readNumber(s);
      }else if(location==2){
        result=readTheTens(s)+result;
      }else if(location==3){
        result=readHundred(s)+result;
      }
      location++;
    }
    return result;
  }
  private String readThousand(String number){
    String yuzluk=readThreeNumber(number);
    if(yuzluk.equals("")){
      return "";
    }else if(yuzluk.equals("bir")){
      return getLevelString(2);
    }else{
      return yuzluk+getLevelString(2);
    }
  }
  private String readBigNumber(String number,int level){
    String yuzluk=readThreeNumber(number);
    if(yuzluk.equals("")){
      return "";
    }else{
      return yuzluk+getLevelString(level);
    }
  }
  private String readHundred(String number){
    if(number.equals("0")){
      return "";
    }else if(number.equals("1")){
      return NUMBER_100;
    }else{
      return readNumber(number)+NUMBER_100;
    }
  }
  private String readTheTens(String number){
    switch(Integer.parseInt(number)){
      case 1:
        return NUMBER_10;
      case 2:
        return NUMBER_20;
      case 3:
        return NUMBER_30;
      case 4:
        return NUMBER_40;
      case 5:
        return NUMBER_50;
      case 6:
        return NUMBER_60;
      case 7:
        return NUMBER_70;
      case 8:
        return NUMBER_80;
      case 9:
        return NUMBER_90;
      default:
        return "";
    }
  }
  private String readNumber(String number){
    switch(Integer.parseInt(number)){
      case 1:
        return NUMBER_1;
      case 2:
        return NUMBER_2;
      case 3:
        return NUMBER_3;
      case 4:
        return NUMBER_4;
      case 5:
        return NUMBER_5;
      case 6:
        return NUMBER_6;
      case 7:
        return NUMBER_7;
      case 8:
        return NUMBER_8;
      case 9:
        return NUMBER_9;
      default:
        return "";
    }
  }
  private String getLevelString(int level){
    if(level==2){
      return NUMBER_1000;
    }if(level==3){
      return NUMBER_MILLION;
    }else if(level==4){
      return NUMBER_MILLIARD;
    }else if(level==5){
      return NUMBER_TRILLION;
    }else{
      return "";
    }
  }
  public static void main(String[] args) {
    NumberTest test=new NumberTest();
    String n="124340";
    String result=test.read(n);
    System.out.println("result: "+result);
  }
}

				
Dosyayı İndir

Bu Sayfayı Paylaş:




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir