2017-04-03 7 views
-3

文字列にjava.lang.numberformatexceptionが表示されるのはなぜですか?java.lang.numberformatexceptionが発生しないようにするにはどうすればよいですか?

BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); 
     System.out.println("Do you have any budget range?. If yes press y else press n"); 
     char ch1=(char)br.read(); 
     if(ch1=='y') 
     { 
      System.out.println("Please enter the lower limit and then the higher limit"); 
      int low_buj = Integer.parseInt(br.readLine()); 
      int high_buj = Integer.parseInt(br.readLine()); 
     } 
     else 
     { 
      System.out.println("Oh okay"); 
     } 
+2

'' br.readLine() 'と'と等号( "Y")を '使用して結果を確認してください)(' br.readを交換してください。これは、next()、nextInt()またはnextFoo()メソッドを使用した後に[スキャナがnextLine()をスキップしている[BufferedReader]バリアントです(http://stackoverflow.com/q/13102045/5221149)。 – Andreas

+0

使用した入力を入力してください。 –

+0

あなたが読んでいるものはどれもIntegerとして解析できません。あなたのコードでデバッガを実行して、実際に何を読み込んでいるのか調べてください。 –

答えて

0

それが原因br.readLine()の前にbr.read()を使用するので、あなたは常に使用)(各br.readLineに空の文字列を持っています。

ちょうどそれが動作するために少し変更を加えます。

BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); 
    System.out.println("Do you have any budget range?. If yes press y else press n"); 
    String s1 = br.readLine(); 
    if("y".equals(s1)) 
    { 
     System.out.println("Please enter the lower limit and then the higher limit"); 
     int low_buj = Integer.parseInt(br.readLine()); 
     int high_buj = Integer.parseInt(br.readLine()); 
    } 
    else 
    { 
     System.out.println("Oh okay"); 
    } 
} 
関連する問題