2017-04-03 8 views
-3

Warum bekomme ich eine java.lang.numberformatexception in string ??Wie kann ich die java.lang.numberformatexception nicht finden?

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

ersetzen 'br.read()' 'mit br.readLine()' und Prüfergebnis 'Gleichen mit ("y")'. Dies ist eine "BufferedReader" -Variante von [Der Scanner überspringt nextLine() nach der Verwendung von next() -, nextInt() - oder anderen nextFoo() - Methoden] (http://stackoverflow.com/q/13102045/5221149). – Andreas

+0

Bitte geben Sie die von Ihnen verwendete Eingabe an. –

+0

Was immer Sie gerade lesen, kann nicht als Integer analysiert werden, führen Sie einfach einen Debugger auf Ihrem Code aus und überprüfen Sie, was Sie gerade lesen. –

Antwort

0

Es ist wegen der Verwendung von br.read() vor br.readLine(), so dass Sie immer in jedem br.readLine eine leere Zeichenfolge haben() verwendet wird.

nur eine wenig Änderungen vornehmen, um daran zu arbeiten zu machen:

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"); 
    } 
} 
Verwandte Themen