JAVA - calculator no if's or catch - ScriptEngineManager -


as school job have write calculator (args passed command line) without conditional operands such if, catch or for, while, etc.

i want use javascript calculation, problem java.lang.classcastexception: java.lang.integer cannot cast java.lang.string.

please me correct code.

import java.math.bigdecimal; import javax.script.scriptenginemanager; import javax.script.scriptengine;  public class calc {      public string docalc(string string) {          string[] argslist = {};         bigdecimal = null, b = null;         string operand = null;          try {             argslist = string.split("\\s+");             = new bigdecimal(argslist[0]);             operand = argslist[1];             b = new bigdecimal(argslist[2]);              //javascript arithmetics             scriptenginemanager mgr = new scriptenginemanager();             scriptengine engine = mgr.getenginebyname("javascript");             //javascript arithmetics              return (string) engine.eval(a+ " " + operand + " " + b);         } catch (exception e) {             //e.printstacktrace();             system.out.println("wrong args");         }         return "";     } }   

a simple tostring(); appended return line seems trick.

the line becomes:

return engine.eval(a+ " " + operand + " " + b).tostring(); 

according docs eval() method returns (unspecified) object, of tostring() method seems convert result properly.


Comments

Popular posts from this blog

ruby - Trying to change last to "x"s to 23 -

jquery - Clone last and append item to closest class -

c - Unrecognised emulation mode: elf_i386 on MinGW32 -