import java.io.*;
public class NumberNames
{
static String A[]={"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};
static String B[]={"","","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"};
static String ConvertToName(int number, int divisionR, int divisionC)
{
if(number==0)return "";
String div[][]={{"","thousand","lakh","crore","arab","hundred arab"},{"","thousand","million","billion","trillion","quadrillion"}};
String s;
if(number< 20)
return removeXtraSpc(A[number]+" "+div[divisionR][divisionC]+" ");
s=Integer.toString(number);
while(s.length()< 3)
s="0"+s;
int x=s.charAt(2)-48;
int y=s.charAt(1)-48;
int z=s.charAt(0)-48;
if(y> 1) s=B[y]+" "+A[x]+" ";
else s=A[10*y+x]+" ";
if(z!=0)
s=A[z]+" Hundred "+((x!=0||y!=0)?" And ":"")+s;
return removeXtraSpc(s+" "+div[divisionR][divisionC]);
}
public static String removeXtraSpc(String s)
{
int a=0;
while(a< s.length()-1)
{
if(s.charAt(a)==s.charAt(a+1)&&s.charAt(a)==' ')
{
String S1=s.substring(0,a);
String S2=s.substring(a+1,s.length());
s=S1+S2;
continue;
}
a++;
}
return s;
}
public static void main(String aa[])throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s=null;
int x=0;
do{
try{
System.out.println("Enter a valid Positive Integer: ");
s=br.readLine();
if(s.length()>18) continue;
x=Integer.parseInt(s);
}catch(Exception e)
{
s=null;
}
}while(s==null||x< 0);
if(x==0)
s="Zero";
else if(x< 1000)
s=ConvertToName(x,0,0);
else
{
char c='.';
do{
System.out.println("Enter a choice: ");
System.out.println("1: For Name in Indian System");
System.out.println("2: For Name in International System");
s=br.readLine();
if(s.length()!=1) continue;
c=s.charAt(0);
}while(c< '1'||c> '2');
s=Integer.toString(x);
c=(char)(c-49);
int a=(c==0?2:3);
int b=1;
String S=s.substring(s.length()-3,s.length());
String t=ConvertToName(Integer.parseInt(S),0,0);
if(Integer.parseInt(S)< 100) t=" and "+t;
c=(char)(s.length()-3);
while(c-a> 0)
{
S=s.substring(c-a,c);
t=ConvertToName(Integer.parseInt(S),a-2,b++)+" "+t;
c=(char)(c-a);
}
if(c-a<=0)
{
S=s.substring(0,c);
t=ConvertToName(Integer.parseInt(S),a-2,b++)+" "+t;
}
s=t;
}//else closes here
s=removeXtraSpc(s);
System.out.println(s);
}//main() closes here
}//class closes here
No comments:
Post a Comment