如何使用算术方程的字符串值?

时间:2017-07-26 05:25:43

标签: java string methods throw arithmetic-expressions

我正在尝试编写一个计算算术表达式值的方法。该方法采用两个int参数value1和value2以及一个字符串参数运算符。我想如果运算符不是*,/, - 或+或者if /后面的value2为0,则抛出IllegalArgumentException。

如何在算术表达式中使用字符串值?到目前为止,这是我的代码:

  public static int compute(int value1, String operator, int value2)
  {
  if ((!operator.equals("+")) || (!operator.equals("*")) || 
     (!operator.equals("-")) || (!operator.equals("/")))
     {
        throw new IllegalArgumentException("Invalid Operator");
     }
  if ((operator.equals("/")) && (value2 == 0))
     {
        throw new IllegalArgumentException("Divide by 0 error");
     }
     int result; 
     return result = (value1 + operator + value2);
  }

1 个答案:

答案 0 :(得分:4)

我认为最好的选择是切换案例,请参阅此示例代码:

int result;

switch (operator)
{
    case "+":
              result = value1 + value2;
              break;
    case "-":
              result = value1 - value2;
              break;
    case "*":
              result = value1 * value2;
              break;
    case "/":
              //check if value2 is 0 to handle divide by zero exception
              if(value2 != 0)
                  result = value1 / value2; 
              else
                  System.out.println("DIVISION NOT POSSIBLE");

              break;
    default:
             throw new IllegalArgumentException("Invalid operator: " + operator);

}

return result;

在这种情况下,默认情况将替换第一个If检查,您将能够删除它。