2017-04-03 2 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.read 교환)''br.readLine()'와'등호를 사용하여 결과를 확인'("Y") :

는 그냥 작동하기 위해 약간의 변경합니다. 이것은 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"); 
    } 
} 
관련 문제