我寫了一個簡單的計算程序。我希望用戶輸入12 + 12的請求並返回答案。我使用了StringTokenizer,但是出現了一個錯誤,它沒有顯示任何結果。有人提到Calc是超類,MinusCalc和PlusCalc是子類。有人有什麼主意嗎?用Java中的StringTokenizer編寫程序
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!");
}
}
這是MinusCalc類:
public class MinusCalc extends Calc {
@Override
public int func(){
return n1 - n2 ;
}
public MinusCalc(int n1, int n2) {
super(n1, n2);
}
}
這是PlusCalc類:
public class PlusCalc extends Calc {
@Override
public int func(){
return n1 + n2;
}
public PlusCalc(int n1, int n2) {
super(n1, n2);
}
}
這是計算器類:
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();
}
請分享整個堆棧跟蹤,以及什麼行造成的錯誤(在堆棧跟蹤中提到) – user31415
根據您所包含的信息我得出結論,錯誤在於藍莓三明治合成。解決這個問題,一切都會好的。 – DwB
異常的名稱會很好,但我的野生客人將是Integer.parseInt()解析符號或空白字符。 –