第1个回答 2017-11-30
如果你只是想要结果的话可以利用数据库来进行计算
进行计算之前,运算符要记得替换,例如x换成*,同理可校验字符串是否是合法运算式
第2个回答 推荐于2017-10-22
java是无法直接解决,不要试图在这方面想了,但是javaScript中有一个eval函数是可以执行的,所以,可以通过其他途径执行javaScript就可以做到,而ScriptEngine是java的一个javaScript实现类 ,可以完成操作,稍有难度!本回答被网友采纳
第3个回答 推荐于2017-09-01
public static void main(String[] args) {
ScriptEngine se = new ScriptEngineManager().getEngineByName("JavaScript");
String str = "2*3-45/5+9+9%5";
try {
Double d = (Double) se.eval(str);
System.out.println(d);
} catch (ScriptException e) {
e.printStackTrace();
}
}本回答被提问者采纳
第4个回答 2017-10-22
当str里面的算式计算出来是整数的时候,编译器会报错,不能从Integer类型转换到Double类型。最好把d改成String类型,然后把(Double)se.eval(str)改成se.eval(str).toString。这样就不会有任何类似的问题了。