Wednesday 15 June 2011

Program for converting numbers in a file to corresponding words


Program for converting numbers in a file to corresponding words

import java.io.*;
import java.lang.*;

class NumToWords
{
        public static void main(String a[]) throws IOException
        {
                String s="";
                BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
                System.out.print("Enter filename : ");
                try
                {
                        s=br.readLine();
                }catch(Exception e){}
                InputStream in=new FileInputStream(s);
                MyInputStream mis=new MyInputStream(in);
                mis.changeNumbers();
                in.close();
                mis.close();
        }
}
class MyInputStream extends FilterInputStream
{
        InputStream is;
        MyInputStream(InputStream in)
        {
                super(in);
                is=in;
        }
        public void changeNumbers() throws IOException
        {
                PushbackInputStream pis;
                String num="";
                char ch;
                int c;
                pis=new PushbackInputStream(is);
                while((c=pis.read())!=-1)
                {
                        ch=(char)c;
                        if('0'<=ch&&ch<='9')
                        {
                                num="";
                                while('0'<=ch&&ch<='9'&&c!=-1)
                                {
                                        num=num+ch;
                                        c=pis.read();
                                        ch=(char)c;
                                }
                                System.out.print(MyInputStream.process(num));
                                pis.unread(ch);
                        }
                        else
                                System.out.print(ch);
                }
        }
        static String process(String str)
        {
                String a1[]={"One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};
                String a2[]={"Twenty","Thirty","Fourty","Fifty","Sixty","Seventy","Eighty","Ninety"};
                String a3[]={"Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};
                String a4[]={"Hundered","Thousand","Lakhs","Crores"};
                int num=0;
                try
                {
                        num=Integer.parseInt(str);
                }catch(Exception e){}
                if(num==0)
                        return "Zero";
                int n,n1;
                String ans="";
                String ans1="";
                n1=num%10;
                num=num/10;
                if(n1!=0)
                        ans=a1[n1-1];
                if(num>0)
                {
                        n=num%10;
                        num=num/10;
                        if(n==1)
                                ans=a3[n1];
                        else if(n!=0)
                                ans=a2[n-2]+" "+ans;
                }
                if(num>0)
                {
                        n=num%10;
                        num=num/10;
                        if(n!=0)
                                ans=a1[n-1]+" "+a4[0]+" "+ans;
                }
                for(int i=1;num>0;i++)
                {
                        n1=num%10;
                        num=num/10;
                        if(n1!=0)
                                ans1=a1[n1-1];
                        if(num>0)
                        {
                                n=num%10;
                                num=num/10;
                                if(n==1)
                                        ans1=a3[n1];
                                else if(n!=0)
                                        ans1=a2[n-2]+" "+ans1;
                        }
                        ans=ans1+" "+a4[i]+" "+ans;
                        ans1="";
                }
                return(ans);
        }
}

People who read this post also read :



No comments:

Post a Comment