-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathInteger to English Word
40 lines (40 loc) · 1.45 KB
/
Integer to English Word
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public String numberToWords(int num) {
String[] units = {""," Thousand"," Million"," Billion"};
int i = 0;
String res="";
while(num>0) {
int temp = num%1000;
if(temp>0) res = convert(temp) + units[i] + (res.length()==0 ?"": " "+res);
num /= 1000;
i++;
}
return res.isEmpty()? "Zero" : res;
}
public String convert(int num){
String res = "";
String[] ten = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};
String[] hundred = {"Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"};
String[] twenty = {"Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"};
if(num>0) {
int temp = num/100;
if(temp>0) {
res += ten[temp] + " Hundred";
}
temp = num%100;
if(temp>=10 && temp<20){
if(!res.isEmpty()) res +=" ";
res = res + twenty[temp%10];
return res;
}else if(temp>=20){
temp = temp/10;
if(!res.isEmpty()) res +=" ";
res = res + hundred[temp-1];
}
temp = num%10;
if(temp>0) {
if(!res.isEmpty()) res +=" ";
res = res + ten[temp];
}
}
return res;
}