当操作符存储在字符串中时执行数学运算

dyn*_*mic 8 java

我有2个整数:

int first= 10;
int second = 20;
Run Code Online (Sandbox Code Playgroud)

和表示操作(之一的字符串+,-,/,或*):

String op = "+";
Run Code Online (Sandbox Code Playgroud)

如何在此示例中获得10 + 20的结果?

Mau*_*cio 13

我不推荐这个,但很有趣.在java6中

String op = '+';
int first= 10;
int second = 20;
ScriptEngineManager scm = new ScriptEngineManager();
ScriptEngine jsEngine = scm.getEngineByName("JavaScript");
Integer result = (Integer) jsEngine.eval(first+op+second);
Run Code Online (Sandbox Code Playgroud)

请使用开关,但请记住将字符串运算符转换为char,因为switch还不能使用字符串.

switch(op.charAt(0)){
    case '+':
        return first + second;
        break;
   // and so on..
Run Code Online (Sandbox Code Playgroud)


rpj*_*nst 6

switch (op.charAt(0)) {
  case '+': return first + second;
  case '-': return first - second;
  // ...
}
Run Code Online (Sandbox Code Playgroud)