Ich schrieb ein einfaches Berechnungsprogramm. Ich möchte, dass Benutzer ihre Anfrage als 12 + 12 eingeben und die Antwort zurücksenden. Ich habe StringTokenizer verwendet, aber ich habe einen Fehler erhalten und er zeigt mir kein Ergebnis. Es wurde erwähnt, dass Calc eine Oberklasse ist und MinusCalc und PlusCalc Unterklassen sind. Hat jemand eine Idee?Ein Programm mit StringTokenizer in Java
void inputLineData() { // This is just the function that use for this case
System.out.println(" Plz enter your all numbers");
String strAll = key.next();
StringTokenizer st = new StringTokenizer(strAll);
int n1 = Integer.parseInt(st.nextToken());
String str = st.nextToken();
int n2 = Integer.parseInt(st.nextToken());
switch (str.charAt(0)) {
case '+':
PlusCalc P = new PlusCalc(n1, n2);
listCalc[indexCalc] = P;
indexCalc++;
break;
case '-':
MinusCalc M = new MinusCalc(n1, n2);
listCalc[indexCalc] = M;
indexCalc++;
break;
default:
System.out.println("Error!");
}
}
Und das ist MinusCalc Klasse:
public class MinusCalc extends Calc {
@Override
public int func(){
return n1 - n2 ;
}
public MinusCalc(int n1, int n2) {
super(n1, n2);
}
}
Und das ist PlusCalc Klasse:
public class PlusCalc extends Calc {
@Override
public int func(){
return n1 + n2;
}
public PlusCalc(int n1, int n2) {
super(n1, n2);
}
}
Und das ist Klasse Calc:
public abstract class Calc {
public Calc(int n1, int n2) { // constructor with parameters!!
this.n1 = n1;
this.n2 = n2;
}
int n1,n2;
public abstract int func();
}
Bitte teilen Sie den gesamten Stack-Trace, zusammen mit welcher Zeile den Fehler verursacht (in Stacktraces erwähnt) – user31415
Basierend auf den Informationen, die Sie enthalten, schließe ich, dass der Fehler in der Blueberry Sandwich Compositing liegt. Fix das und alles wird gut. – DwB
Der Name der Ausnahme wäre nett, aber mein wilder Gast würde Integer.parseInt() sein, Zeichen oder Leerzeichen zu analysieren. –