Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138646
  • 博文数量: 46
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-15 23:00
文章分类

全部博文(46)

文章存档

2018年(18)

2017年(11)

2015年(14)

2014年(3)

我的朋友

分类: Java

2018-03-08 09:18:48


点击(此处)折叠或打开

  1. public class TestA {
  2.     public static void main(String[] args) throws Exception {
  3.         String str = "(a >= 0 && b <= 5)";
  4.         ScriptEngineManager manager = new ScriptEngineManager();
  5.         ScriptEngine engine = manager.getEngineByName("js");
  6.         engine.put("a", 4);
  7.         engine.put("b", 5);
  8.         Object result = engine.eval(str);
  9.         System.out.println("结果类型:" + result.getClass().getName() + ",计算结果:" + result);
  10.     }
  11. }
输出结果:
结果类型:java.lang.Boolean,计算结果:false

还可以使用 commons-jexl3 jar包 

示例:

点击(此处)折叠或打开

  1. public static void main(String[] args){
  2.         String expressionString = "1+2+3";
  3.  
  4.         JexlEngine jexlEngine = new JexlBuilder().create();
  5.         JexlExpression jexlExpression = jexlEngine.createExpression(expressionString);
  6.         Object evaluate = jexlExpression.evaluate(null);
  7.         System.out.println(evaluate);
  8.     }
结果:  6


示例2:

来个复杂点的

点击(此处)折叠或打开

  1. public static void main(String[] args){
  2.         // String expressionString = "1+2+3";
  3.  
  4.         String expressionString = "100*10-(200+300)";
  5.  
  6.         JexlEngine jexlEngine = new JexlBuilder().create();
  7.         JexlExpression jexlExpression = jexlEngine.createExpression(expressionString);
  8.         Object evaluate = jexlExpression.evaluate(null);
  9.         System.out.println(evaluate);
  10.     }

结果: 500


阅读(1639) | 评论(0) | 转发(0) |
0

上一篇:awk常用操作

下一篇:c-shell小数判断

给主人留下些什么吧!~~