Das ist also das Programm, das ich für die Schule schrieb:Wie kann ich dieses Programm korrigieren, um zu verhindern, dass es java.lang.NumberFormatException auslöst?
import java.io.*;
public class p35{
public static void main()throws IOException
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.println("Enter c for circle,r for rectangle and t for triangle");
char a = (char)br.read();
switch(a)
{
case 'c': System.out.println("Enter radius");
String r = br.readLine();
int rad = Integer.parseInt(r);
System.out.println("area of circle is:"+(22/7)*(rad*rad));
break;
case 'r': System.out.println("Enter length");
String l = br.readLine();
int len = Integer.parseInt(l);
System.out.println("Enter breadth");
String bd = br.readLine();
int breadth = Integer.parseInt(bd);
System.out.println("area of rectangle is: "+len*breadth);
break;
case 't': System.out.println("Enter base");
String b = br.readLine();
int bas = Integer.parseInt(b);
System.out.println("Enter height");
String h = br.readLine();
int htg = Integer.parseInt(h);
System.out.println("area of triangle is: "+(1/2)*bas*htg);
break;
}
}
}
Es ist nicht java.lang.NumberFormatException zu arbeiten und wirft scheint. Kann mir jemand helfen, es zu korrigieren? ps. Ich bin nicht berechtigt, die Ausnahmebehandlung zu verwenden, also könnten Sie bitte versuchen, mir zu helfen, ohne das zu benutzen? Dank
Verwenden Sie einen 'Scanner', der nützliche Methoden hat, um das zu tun, was Sie wollen – TheLostMind
Sie können regex verwenden, um sicherzustellen, dass es eine Nummer ist, bevor Sie es analysieren ... Wenn es keine gültige Zahl ist, wird der Benutzer nach einer gültigen Nummer gefragt . – brso05
Drucken Sie die Zeichenfolge aus, die Sie analysieren möchten. Ich wette, da ist eine neue Zeile oder etwas darin, weil 'br.read()' die Zeile nicht konsumiert. – aioobe