String a = "(1+1)*5";现在希望能够得到 a 的值。当然该值是执行完计算公式的!也就是得到 a="10";或直接得到一个数字。当然 表达试"(1+1)*5"中的所有数字或运算符号,小括号等都是可变的!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【java_2008_4_5】截止到2008-07-11 12:43:11的历史汇总数据(不包括此帖):
    发帖的总数量:3                        发帖的总分数:60                       每贴平均分数:20                       
    回帖的总数量:3                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:3                        结贴的总分数:60                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    可以用脚本语言。
    eval 一下就行了。具体的去参考JDK6增加的东西
      

  3.   

    String a="(1+1)*5" ;
       
         上面的表达式的 意思就是  a=  这样一个字符串  :“(1+1)*5”并不会去计算这个表达式的值     如果你想得到a的值为10的结果   你可以直接这样写String a=(1+1)*5;这样就是计算后的值了  
      

  4.   

    可以写一个词法分析器,分析String里的内容并且进行计算。具体方法可以看编译原理课程的教科书
      

  5.   

    eval 是 1.6才开始有的,早期的没有,支持8楼,写写这个有助于提高自己
      

  6.   

    eval 是哪个包下的哪个类的方法啊?
      

  7.   

    ScriptEngineManager factory = new ScriptEngineManager();
    ScriptEngine engine = factory.getEngineByName("JavaScript");
    System.out.println((Double)engine.eval("(1+1)*5"));用JDK6编译
      

  8.   

    给你提供一个简单的
    String a = ""+(1+1)*5;
      

  9.   

    1.下载MVEL.它就像javascript中的Eval 
    2.String a = "(1+1)*5"; 
      int count = MVEL.eval(a);
      

  10.   

    public static void main(String[] args) {
    String a = ""+(1+1)*5;
    System.out.println("a = "+a);
    }
      

  11.   

    String a = new Long((1 + 1) * 5).toString();
    String a = new Integer((1 + 1) * 5).toString();
    String a = new Short((1 + 1) * 5).toString();
    String a = new Byte((1 + 1) * 5).toString();
    我想了这么多,你爱用哪个用哪个