Function Convert Number to Words..
import java.text.DecimalFormat;
public class numberToWords {
private static final String[] ratusan = {
"",
" seratus",
" dua ratus",
" tiga ratus",
" empat ratus",
" lima ratus",
" enam ratus",
" tujuh ratus",
" delapan ratus",
" sembilan ratus"
};
private static final String[] puluhan = {
"",
" sepuluh",
" dua puluh",
" tiga puluh",
" empat puluh",
" lima puluh",
" enam puluh",
" tujuh puluh",
" delapan puluh",
" sembilan puluh"
};
private static final String[] satuan = {
"",
" satu",
" dua",
" tiga",
" empat",
" lima",
" enam",
" tujuh",
" delapan",
" sembilan",
" sepuluh",
" sebelas",
" dua belas",
" tiga belas",
" empat belas",
" lima belas",
" enam belas",
" tujuh belas",
" delapan belas",
" sembilan belas",
};
private static String konvertkurangdariseribu (int number) {
System.out.println("nilai awal number " +number);
String value;
if (number % 100 < 20){
value = satuan[number % 100];
System.out.println("value dari if di konvertstringseribu" +value);
number /= 100;
System.out.println("if di konvertkurangdariseribu " +value);
}
else {
System.out.println("nilai awal number yang else " +number);
value = satuan[number % 10];
number /= 10;
System.out.println("else pertama di konvertkurangdariseribu " +value);
value = puluhan[number % 10] + value;
number /= 10;
System.out.println("else di konvertkurangdariseribu " +value);
value = ratusan[number % 10] + value;
number /= 10;
System.out.println("else di konvertkurangdariseribu " +value);
}
if (number == 0) return value;
System.out.println("return " +value);
return ratusan[number] + value;
}
public static String konversi(long number) {
//started from here
// 0 to 999 999 999 999
if (number == 0) { return "nol"; }
String snumber = Long.toString(number);
// pad with "0"
String mask = "000000000000";//length snumber
DecimalFormat df = new DecimalFormat(mask);
snumber = df.format(number);
// XXXnnnnnnnnn
int bil_milyaran = Integer.parseInt(snumber.substring(0,3));
System.out.println("integer bil_milyaran " +bil_milyaran);
// nnnXXXnnnnnn
int bil_jutaan = Integer.parseInt(snumber.substring(3,6));
System.out.println("integer bil_jutaan " +bil_jutaan);
// nnnnnnXXXnnn
int bil_seratusribuan = Integer.parseInt(snumber.substring(6,9));
System.out.println("integer bil_seratusribuan " +bil_seratusribuan);
// nnnnnnnnnXXX
int bil_ribuan = Integer.parseInt(snumber.substring(9,12));
System.out.println("integer bil_ribuan " +bil_ribuan);
String hit_milyaran;
switch (bil_milyaran) {
case 0:
hit_milyaran = "";
System.out.println("switch case 0 hit milyaran " +hit_milyaran);
break;
case 1 :
hit_milyaran = konvertkurangdariseribu(bil_milyaran)
+ " milyar ";
System.out.println("switch case 1 hit milyaran " +hit_milyaran);
break;
default :
hit_milyaran = konvertkurangdariseribu(bil_milyaran)
+ " milyar ";
System.out.println("switch default hit milyaran " +hit_milyaran);
}
String result = hit_milyaran;
System.out.println(result);
String hit_jutaan;
switch (bil_jutaan) {
case 0:
hit_jutaan = "";
System.out.println("switch case 0 hit jutaan " +bil_jutaan);
break;
case 1 :
hit_jutaan = konvertkurangdariseribu(bil_jutaan)
+ " juta ";
System.out.println("switch case 1 hit jutaan " +bil_jutaan);
break;
default :
hit_jutaan = konvertkurangdariseribu(bil_jutaan)
+ " juta ";
System.out.println("switch case default hit jutaan " +bil_jutaan);
}
result = result + hit_jutaan;
System.out.println("result dari result + hit jutaan "+result);
String hit_seratusribuan;
switch (bil_seratusribuan) {
case 0:
hit_seratusribuan = "";
System.out.println("switch case 0 hit seratus ribuan " +bil_seratusribuan);
break;
case 1 :
hit_seratusribuan = "seribu ";
System.out.println("switch case 1 hit seratus ribuan " +bil_seratusribuan);
break;
default :
hit_seratusribuan = konvertkurangdariseribu(bil_seratusribuan)
+ " ribu ";
System.out.println("hit_seratusribuan "+hit_seratusribuan);
System.out.println("switch case default hit seratus ribuan " +bil_seratusribuan);
}
result = result + hit_seratusribuan;
System.out.println("result dari result + hit seratusribuan "+result);
String hit_ribuan;
hit_ribuan = konvertkurangdariseribu(bil_ribuan);
System.out.println(hit_ribuan);
result = result + hit_ribuan;
System.out.println("result dari result + hit ribuan "+result);
// remove extra spaces!
return result.replaceAll("^\\s+", "").replaceAll("\\b\\s{2,}\\b", " ");
}
public static void main(String[] args) {
System.out.println("*** " + numberToWords.konversi(1100567));
}
}
public class numberToWords {
private static final String[] ratusan = {
"",
" seratus",
" dua ratus",
" tiga ratus",
" empat ratus",
" lima ratus",
" enam ratus",
" tujuh ratus",
" delapan ratus",
" sembilan ratus"
};
private static final String[] puluhan = {
"",
" sepuluh",
" dua puluh",
" tiga puluh",
" empat puluh",
" lima puluh",
" enam puluh",
" tujuh puluh",
" delapan puluh",
" sembilan puluh"
};
private static final String[] satuan = {
"",
" satu",
" dua",
" tiga",
" empat",
" lima",
" enam",
" tujuh",
" delapan",
" sembilan",
" sepuluh",
" sebelas",
" dua belas",
" tiga belas",
" empat belas",
" lima belas",
" enam belas",
" tujuh belas",
" delapan belas",
" sembilan belas",
};
private static String konvertkurangdariseribu (int number) {
System.out.println("nilai awal number " +number);
String value;
if (number % 100 < 20){
value = satuan[number % 100];
System.out.println("value dari if di konvertstringseribu" +value);
number /= 100;
System.out.println("if di konvertkurangdariseribu " +value);
}
else {
System.out.println("nilai awal number yang else " +number);
value = satuan[number % 10];
number /= 10;
System.out.println("else pertama di konvertkurangdariseribu " +value);
value = puluhan[number % 10] + value;
number /= 10;
System.out.println("else di konvertkurangdariseribu " +value);
value = ratusan[number % 10] + value;
number /= 10;
System.out.println("else di konvertkurangdariseribu " +value);
}
if (number == 0) return value;
System.out.println("return " +value);
return ratusan[number] + value;
}
public static String konversi(long number) {
//started from here
// 0 to 999 999 999 999
if (number == 0) { return "nol"; }
String snumber = Long.toString(number);
// pad with "0"
String mask = "000000000000";//length snumber
DecimalFormat df = new DecimalFormat(mask);
snumber = df.format(number);
// XXXnnnnnnnnn
int bil_milyaran = Integer.parseInt(snumber.substring(0,3));
System.out.println("integer bil_milyaran " +bil_milyaran);
// nnnXXXnnnnnn
int bil_jutaan = Integer.parseInt(snumber.substring(3,6));
System.out.println("integer bil_jutaan " +bil_jutaan);
// nnnnnnXXXnnn
int bil_seratusribuan = Integer.parseInt(snumber.substring(6,9));
System.out.println("integer bil_seratusribuan " +bil_seratusribuan);
// nnnnnnnnnXXX
int bil_ribuan = Integer.parseInt(snumber.substring(9,12));
System.out.println("integer bil_ribuan " +bil_ribuan);
String hit_milyaran;
switch (bil_milyaran) {
case 0:
hit_milyaran = "";
System.out.println("switch case 0 hit milyaran " +hit_milyaran);
break;
case 1 :
hit_milyaran = konvertkurangdariseribu(bil_milyaran)
+ " milyar ";
System.out.println("switch case 1 hit milyaran " +hit_milyaran);
break;
default :
hit_milyaran = konvertkurangdariseribu(bil_milyaran)
+ " milyar ";
System.out.println("switch default hit milyaran " +hit_milyaran);
}
String result = hit_milyaran;
System.out.println(result);
String hit_jutaan;
switch (bil_jutaan) {
case 0:
hit_jutaan = "";
System.out.println("switch case 0 hit jutaan " +bil_jutaan);
break;
case 1 :
hit_jutaan = konvertkurangdariseribu(bil_jutaan)
+ " juta ";
System.out.println("switch case 1 hit jutaan " +bil_jutaan);
break;
default :
hit_jutaan = konvertkurangdariseribu(bil_jutaan)
+ " juta ";
System.out.println("switch case default hit jutaan " +bil_jutaan);
}
result = result + hit_jutaan;
System.out.println("result dari result + hit jutaan "+result);
String hit_seratusribuan;
switch (bil_seratusribuan) {
case 0:
hit_seratusribuan = "";
System.out.println("switch case 0 hit seratus ribuan " +bil_seratusribuan);
break;
case 1 :
hit_seratusribuan = "seribu ";
System.out.println("switch case 1 hit seratus ribuan " +bil_seratusribuan);
break;
default :
hit_seratusribuan = konvertkurangdariseribu(bil_seratusribuan)
+ " ribu ";
System.out.println("hit_seratusribuan "+hit_seratusribuan);
System.out.println("switch case default hit seratus ribuan " +bil_seratusribuan);
}
result = result + hit_seratusribuan;
System.out.println("result dari result + hit seratusribuan "+result);
String hit_ribuan;
hit_ribuan = konvertkurangdariseribu(bil_ribuan);
System.out.println(hit_ribuan);
result = result + hit_ribuan;
System.out.println("result dari result + hit ribuan "+result);
// remove extra spaces!
return result.replaceAll("^\\s+", "").replaceAll("\\b\\s{2,}\\b", " ");
}
public static void main(String[] args) {
System.out.println("*** " + numberToWords.konversi(1100567));
}
}





