我写了一个简单的计算程序。我希望用户输入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()解析符号或空白字符。 –