有的问题需要请教下哈 就是 String a ="1+2"; 如何转换成 float a = 1+2; 不通过正则表达式用户输入 一串字符串 比如: (1+2)*4+(2+5)/4
我的想法是 把它直接把String转换成 类似 float result = (1+2)*4+(2+5)/4; 还有些别的方法可以实现 但觉得过于麻烦比如 正则(不是说不好,很好用)
我的想法是 把它直接把String转换成 类似 float result = (1+2)*4+(2+5)/4; 还有些别的方法可以实现 但觉得过于麻烦比如 正则(不是说不好,很好用)
如果是这样,我可以先提供2种方法:
1,用数据库计算,大致代码是:String a = "1+2";"select " + a + "from "+表;
2,javascript的eval方法;
我用过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得开发包哈。