import java.sql.Timestamp;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import bsh.Interpreter;
public class Test {
public static void main(String[] args) {
String rule = "a + b * c - d / e";
Test test= new Test();
List<ParaVo> list = test.setParam();
String retValue = test.calcPoint(rule, list);
System.out.println("计算结果为:" + retValue);
}
private List<ParaVo> setParam(){
List<ParaVo> list = new ArrayList<ParaVo>();
ParaVo vo = new ParaVo();
vo.setName("a");
vo.setValue(1);
list.add(vo);
vo = new ParaVo();
vo.setName("b");
vo.setValue(2);
list.add(vo);
vo = new ParaVo();
vo.setName("c");
vo.setValue(3);
list.add(vo);
vo = new ParaVo();
vo.setName("d");
vo.setValue(4);
list.add(vo);
vo = new ParaVo();
vo.setName("e");
vo.setValue(5);
list.add(vo);
return list;
}
private String calcPoint(String rule, List<ParaVo> list){
String value = "0";
try {
Interpreter interpreter = new Interpreter();
for(ParaVo vo : list){
interpreter.set(vo.getName(), vo.getValue());
}
double va = (Double) interpreter.eval(rule);
DecimalFormat df = new DecimalFormat("#.00");
value = df.format(va);
} catch (Exception e) {
e.printStackTrace();
value = "-1";
}
return value;
}
public class ParaVo {
String name;
double value;
public ParaVo(String name, double value) {
super();
this.name = name;
this.value = value;
}
public ParaVo() {
super();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getValue() {
return value;
}
public void setValue(double value) {
this.value = value;
}
}
}
分享到:
相关推荐
在很多中大型的应用中,如SCM(供应链管理)、CRM(客户关系管理)和ERP(企业资源计划)等,使用者往往要根据自身的需求,灵活的对某一些参数值进行变更,使得按照某固定公式计算的结果符合目前的情况。如不同时期...
根目录Bean/bin文件夹下bsh-core-2.0b4.jar文件是jar包, 根目录Bean/com/strart.java是用BeanShell计算1+2=3的代码例子
主要介绍了通过spring用beanshell实现java接口示例,需要的朋友可以参考下
BeanShell BeanShell
BeanShell java 表达式运算框架,及其方便快捷(附jar包,工具类,测试类)
如果你只是要玩一玩BeanShell,你可以在BeanShell的jar文件上双击来起动BeanShell的桌面。但不管怎样,如果你要让BeanShell与你的类与应用程序一起工作就必须将 BeanShell的jar文件加到classpath中。 你可以将...
beanshell和jdom的jar包 BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法
什么是BeanShell BeanShell是一个小型的,免费的,可嵌入式的,具有面向对象脚本... rhino是使用java代码实现的javascript解释器,它实现了javascript的核心,符合Ecma-262标准。直接在 Java 中使用 JavaScript 的功能
beanshell 源码 jar doc sound
保存本地文件会把逐次请求的不同参数的结果分别保存。...BeanShell PostProcessor每次可以打开相同文件,在一个文件上 追加 写入 。可以实现存到同一文件中。 注意:保存结果到本地,也要创建***正则提取器***哦~~
JMeter处理Excel文件
Beanshell是用Java写成的,是一个小型的、免费的的、可嵌入式的Java源代码解释器,具有对象脚本语言特性。 BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。...本例是一个对于公式的解析范例。
BeanShell帮助文档pdf和jar包
how to use beanshell to debug java application
实现建模、开发、继承、运行、管理一体化的IT解决方案信息化平台。用友 NC bsh.[servlet](https://so.csdn.net/so/search?q=servlet&spm=1001.2101.3001.7020).BshServlet 存在远程命令执行漏洞,通过BeanShell 执行...
JMeter beanShell修改http请求参数,尝试对http进行修改。
jmeter配置原件BeanShell使用方法场景介绍,Jmeter常用内置变量及方法介绍
beanshell的使用,介绍以及源码