IQ

Ad SpeedyAds

Thursday, January 12, 2012

To Convert A Number Into Words

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