如何将字符串值用于算术方程式?
how to use the a string value for arithmetic equations?
我正在尝试编写一种计算算术表达式值的方法。该方法采用两个 int 参数 value1 和 value2 以及一个字符串参数运算符。如果运算符不是 *、/、- 或 +,或者如果 / 后面的值 2 为 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);
}
我认为最适合你的选择是 switch case,请参见示例代码:
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 检查,您将能够将其删除。
我正在尝试编写一种计算算术表达式值的方法。该方法采用两个 int 参数 value1 和 value2 以及一个字符串参数运算符。如果运算符不是 *、/、- 或 +,或者如果 / 后面的值 2 为 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);
}
我认为最适合你的选择是 switch case,请参见示例代码:
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 检查,您将能够将其删除。