Java中的字符串计算器

问题描述 投票:0回答:2

我想创建一个字符串计算器,这是我的全部代码。输出应为24(操作顺序与字符串相同),但输出应为3。我该怎么办?

public class Örnek{

     public static void main(String[] args)
     {
         String a = "2+5*3+1";
            System.out.println(a);
            String operators[]=a.split("[0-9]");
            String operands[]=a.split("[*+-/]");
            int agregate = Integer.parseInt(operands[0]);
            for(int i=1;i<operands.length-1;i++){
                if(operators[i].equals("+"))
                    agregate += Integer.parseInt(operands[i]);
                else if(operators[i].equals("-"))
                    agregate -= Integer.parseInt(operands[i]);
                if(operators[i].equals("*"))
                    agregate *= Integer.parseInt(operands[i]);
                else 
                    agregate /= Integer.parseInt(operands[i]);
            }

            System.out.println(agregate);
     }

}

java
2个回答
2
投票

[您似乎在第三位上缺少else,这意味着除法运算总是在任何时候触发除法。


-1
投票

数组从0开始数字化。

因此,您的循环应如下所示:

for(int i=0;i<operands.length;i++){

不是

String operands[]=a.split("[*+-/]");

此外,您的计算器不能使用大于9的数字,但是可以很容易地将其修复。只需使用[0-9]+而不是正则表达式中的[0-9]

© www.soinside.com 2019 - 2024. All rights reserved.