Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Java (http://www.go4expert.com/forums/java/)
-   -   Why is it throwing "number format exception" ? (http://www.go4expert.com/forums/throwing-format-exception-t8392/)

Kailash 22Jan2008 12:19

Why is it throwing "number format exception" ?
 
Code:

//WAP That convert integer value into binary,octal and hexdecimal.

import java.io.*;

class numconv
{
 public static void main(String s[])throws IOException
  {
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

    char ch='y';
    int opt,num;
    String bin,oct,hex;


    do
      {

      System.out.println("*******  1: Convert number to Binary format ********");
      System.out.println("*******  2: Convert number to Octal format *********");
      System.out.println("*******  3: Convert number to Hexadecimal format ***");
     
      System.out.print("\n\n Enter Option :");
      opt=Integer.parseInt(br.readLine());

      switch(opt)
        {
            case 1:
                    System.out.print("\n\nEnter Number :");
                    num=Integer.parseInt(br.readLine());
                    bin=Integer.toBinaryString(num);
                    System.out.println("\nBinary equivalent of "+num+" is "+bin);
                    break;

            case 2:
                    System.out.print("\n\nEnter Number :");
                    num=Integer.parseInt(br.readLine());
                    oct=Integer.toOctalString(num);
                    System.out.println("\nOctal equivalent of "+num+" is "+oct);
                    break; 

            case 3:
                    System.out.print("\n\nEnter Number :");
                    num=Integer.parseInt(br.readLine());
                    hex=Integer.toHexString(num);
                    System.out.println("\nHexadecimal equivalent of "+num+" is "+hex);
                    break;

         
        }

      System.out.print("\n\n Enter your choice(y/n) :");
      ch=(char)br.read();
     
      }while(ch!='n');

  }
}



Here is the output


******* 1: Convert number to Binary format ********
******* 2: Convert number to Octal format *********
******* 3: Convert number to Hexadecimal format ***


Enter Option :1


Enter Number :5643

Binary equivalent of 5643 is 1011000001011


Enter your choice(y/n) :y

Here, when i am entering 'y' or value other than 'n' it is throwing exception.

******* 1: Convert number to Binary format ********
******* 2: Convert number to Octal format *********
******* 3: Convert number to Hexadecimal format ***


Enter Option :Exception in thread "main" java.lang.NumberFormatException: For i
nput string: ""
at java.lang.NumberFormatException.forInputString(Num berFormatException.
java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:476)
at numconv.main(numconv.java:24)

dontbugme 30Jan2008 16:35

Re: Why is it throwing "number format exception" ?
 
you type a letter "y", and then you type a line return

read() just reads one character ("y")

the line return is still in the stream

then when readLine() is called, it reads until it encounters a line return, which is the first character it encounters

so it returns an empty line

Integer.parseInt() cannot parse an empty string

pradeep 30Jan2008 18:16

Re: Why is it throwing "number format exception" ?
 
change br.readLine() to br.read();

arbaz.it 14Feb2008 14:42

Re: Why is it throwing "number format exception" ?
 
hi can you please give some explanation for your code i needed some help


All times are GMT +5.5. The time now is 23:30.