Java Android计算器EmptyStackException
我想做一个堆栈计算器应用程序。但当我输入3 4+时,我的应用程序崩溃并抛出EmptyStackExceptionJava Android计算器EmptyStackException,java,android,user-interface,exception,stack,Java,Android,User Interface,Exception,Stack,我想做一个堆栈计算器应用程序。但当我输入3 4+时,我的应用程序崩溃并抛出EmptyStackException public class Calculator { // RechenLogik private Stack<Double> stack = new Stack<Double>(); private MainActivity activity ; public Calculator(MainActivity activity ) { this.
public class Calculator { // RechenLogik
private Stack<Double> stack = new Stack<Double>();
private MainActivity activity ;
public Calculator(MainActivity activity ) {
this.activity = activity;
}
public void calculate() {
String expr =activity.getTextfromTextField();
switch (expr) {
case "+":
stack.push(stack.pop() + stack.pop());
activity.setTextField(stack.peek().toString()); // set Text
break;
default:
stack.push(Double.parseDouble(expr));
break;
}
}
}
And in Main Activity in OnClick Method
case R.id.button17: r.calculate(); TextField.setText(""); break; // Enter
press
公共类计算器{//RechenLogik
私有堆栈=新堆栈();
私人活动;
公共计算器(主要活动){
这个。活动=活动;
}
公共空间计算(){
String expr=activity.getTextfromTextField();
交换机(expr){
格“+”:
stack.push(stack.pop()+stack.pop());
activity.setTextField(stack.peek().toString());//设置文本
打破
违约:
stack.push(Double.parseDouble(expr));
打破
}
}
}
在OnClick方法的主要活动中
案例R.id按钮17:R.calculate();TextField.setText(“”);中断;//进入
按
如果有任何帮助,我们将不胜感激。没人有主意吗?堆栈一定有问题,但我找不到。好的,谢谢,我发现了错误。