最近小弟要做一个项目,遇到一件很麻烦的事情,特地来这里请教大家!问题是这样的:有一个数据库表T,里面的表的结构如下如下:一共有三个字段,第一个字段是varchar类型、代表公司id,第二个也是varchar类型的、代表公司的项目的名字(例如销售额xse),第三个是double类型的、代表这个项目的值(如销售额的值),companyID(varchar)       xmName(varchar)        xmValue(number)
001                       xse                    10000
001                       nse                     2000
001                       hdl                     3000
001                       hsl                     300
001                       hml                     400
001                       cb                      2000
002                       xse                    20000
002                       nse                     3000
002                       hdl                     4000
002                       hsl                     400
002                       hml                     500
002                       cb                      3000
.......现在我要设计一个接口 public List getValue(String str),当我传入一个四则运算的式子给变量str的时候,这个接口就会返回一个每个公司有关这个四则运算结果的list,例如传入的str为nse/(xse-cb)则返回list为list.companyID=001,list.result=2000/(10000-2000)=0.25;list.companyID=002,list.result=3000/(20000-3000)=0.176。请问怎么样才能做到啊

解决方案 »

  1.   

    1.6开始支持   ScriptEngineManager sem = new ScriptEngineManager();
       ScriptEngine se = sem.getEngineByName("js");
        se.eval("(5+5)-5*5/5").toString()); 
      

  2.   

    楼上的大哥,我要的是给出任意的四则运算都能得出结果,而且计算的式子是变量(如xse),不是数字(如5)
      

  3.   

    你可以去看看 BeanShell