我必须使用一个计算器,逐个对数字进行加,减,乘和除,然后它将显示所有运算的结果。实施例。
输入:10 输入:+ 输入:10 输入:= 输出:10 + 10 = 20
我尝试通过手动推送数字和运算符来实现,并且它工作正常,仅用于添加和减去。 (这是代码)。
public static void main(String[] args) {
Stack<String> stack = new Stack();
stack.push("10");
stack.push("+");
stack.push("10");
stack.push("-");
stack.push("20");
stack.push("+");
stack.push("1");
stack.push("=");
int result=0;
int i;
int result=0;
for(i=0;i<stack.size();i++){
if (stack.elementAt(i)== "+"){
//does get in
我在第二个代码中检查了堆栈与第一个代码上的堆栈类似,它是类似的。由于某种原因,它不想通过if语句,即使它等于“+”或“ - ”。
Stack<String> stack = new Stack();
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String s1 = sc.next();
stack.push(s1);
if(s1.equals("=")) {
break;
}
}
int i;
int result=0;
for(i=0;i<stack.size();i++){
System.out.print(stack.elementAt(i));
}
for(i=0;i<stack.size();i++){
if (stack.elementAt(i)=="+"){
//doesn't get in
答案 0 :(得分:0)
您的代码存在问题
if (stack.elementAt(i)== "+")
堆栈采用String类型的争论。比较你应该使用
if(stack.elementAt(i).equals("+"))
同样,为&#34; - &#34;。
执行相同的操作