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