有的问题需要请教下哈  就是 String a ="1+2"; 如何转换成 float a = 1+2;  不通过正则表达式用户输入 一串字符串 比如: (1+2)*4+(2+5)/4  
我的想法是 把它直接把String转换成  类似 float result = (1+2)*4+(2+5)/4;  还有些别的方法可以实现  但觉得过于麻烦比如 正则(不是说不好,很好用) 

解决方案 »

  1.   

    你的目的是计算表达式结果是吗?
    如果是这样,我可以先提供2种方法:
    1,用数据库计算,大致代码是:String a = "1+2";"select " + a + "from "+表;
    2,javascript的eval方法;
      

  2.   

    java里面表达式得计算,有很多开源得东西可以用得
    我用过jep,输入一个表达式,得出表达式得值。
    你也可以输入“1=2”,然后它返回0,1。0是真,1是假;
    你的代码可以这样写:
            JEP j = new JEP();
            String express="(1+2)*4+(2+5)/4";
            j.parseExpression(express);
            if (j.hasError())
               System.out.println(j.getErrorInfo());
            else
                System.out.println(j.getValue());
    需要jep得开发包哈。
      

  3.   

    还是到网上找现成的吧,我看比较难,你要写的话可以参考jdk源代码的做法处理