我想创建一个字符串计算器,这是我的全部代码。输出应为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);
}
}
[您似乎在第三位上缺少else
,这意味着除法运算总是在任何时候触发除法。
数组从0开始数字化。
因此,您的循环应如下所示:
for(int i=0;i<operands.length;i++){
不是
String operands[]=a.split("[*+-/]");
此外,您的计算器不能使用大于9的数字,但是可以很容易地将其修复。只需使用[0-9]+
而不是正则表达式中的[0-9]
。