转载内容:
今天遇到了一个需要将数据库中保存的表达式,替换其中的字符,并计算出值,java是不能直接计算的例如:
double d = (3+5-(2-4)*2)/24;没有问题
但是:遇到 "(3+5-(2-4)*2)/24" 字符串的格式,就不能使用了
java是无法解决,但是javaScript中有一个eval函数是可以执行的,所以,可以通过其他途径执行javaScript就可以做到,而ScriptEngine是java的一个javaScript实现类,所以就找到了方法,详细方法见下
public class MapJ {
private String key; // 替换的编号
private String value; // 值
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public MapJ(String key, String value) {
super();
this.key = key;
this.value = value;
}
public MapJ() {
super();
}
}
// 实现类
import jav