java中运算符的解析和计算
package com.LBH; import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException; import com.singularsys.jep.Jep;
import com.singularsys.jep.bigdecimal.BigDecComponents; public class JieXi { public static boolean getExpressionValue(String expression) {
Jep jep = new Jep(new BigDecComponents());
jep.addStandardConstants();
Object result = null;
try {
jep.parse(expression);
result = jep.evaluate();
} catch (Exception e) {
e.printStackTrace();
}
return (Boolean) result; } public static Object getMathValue(String str) throws ScriptException{
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
engine.put("a", true);
engine.put("b", false);
engine.put("c", true);
Object result = engine.eval(str);
return result;
} public static void main(String[] args) throws Exception { String str = "(a||b)&&c";
System.out.println(str);
Object result = getMathValue(str);
System.out.println("关系运算符计算结果,类型:" + result.getClass().getName()
+ ",结果:" + result);
System.out.println("******************\n数学运算符"
+ getExpressionValue("(1+3)&&(0+10)"));
}
}
运算结果:
(a||b)&&c
关系运算符计算结果,类型:java.lang.Boolean,结果:true
******************
数学运算符true
参考:http://blog.sina.com.cn/s/blog_acdc06250101p5dh.html
java中运算符的解析和计算的更多相关文章
- JAVA中生成、解析二维码图片的方法
JAVA中生成.解析二维码的方法并不复杂,使用google的zxing包就可以实现.下面的方法包含了生成二维码.在中间附加logo.添加文字功能,并有解析二维码的方法. 一.下载zxing的架包,并导 ...
- 沉淀再出发:java中线程池解析
沉淀再出发:java中线程池解析 一.前言 在多线程执行的环境之中,如果线程执行的时间短但是启动的线程又非常多,线程运转的时间基本上浪费在了创建和销毁上面,因此有没有一种方式能够让一个线程执行完自己的 ...
- 转:在java中使用dom4j解析xml
JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...
- Java中的float、double计算精度问题
java中的float.double计算存在精度问题,这不仅仅在java会出现,在其他语言中也会存在,其原因是出在IEEE 754标准上. 而java对此提供了一个用于浮点型计算的类——BigDeci ...
- java中运算符的优先级
所谓优先级,就是在表达式中的运算顺序.Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最低.譬如,x = 7 + 3 * 2 得到的结果是 13 &quo ...
- java中采用dom4j解析xml文件
一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...
- 慕课网-安卓工程师初养成-3-9 Java中运算符的优先级
来源 http://www.imooc.com/code/1315 所谓优先级,就是在表达式中的运算顺序.Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最 ...
- java中main函数解析(转载)
从写java至今,写的最多的可能就是主函数 public static void main(String[] args) {} 但是以前一直都没有问自己,为什么要这么写,因为在c语言中就没有这样子的要 ...
- java中float/double浮点数的计算失精度问题(转)
如果我们编译运行下面这个程序会看到什么? public class Test { public static void main(String args[]) { ...
随机推荐
- zookeeper系列之五—Leader选举算法
leader选举算法 zookeeper server内部原理 zookeeper client
- 我的android学习经历20
WebView的使用 WebView既可以和Intent一样实现界面跳转一样,让系统浏览器打开页面,也可以在应用程序中打开页面 注意用WebView时,需要注册网络服务 代码如下: package c ...
- C#其他
1.switch - if ...else if...switch(表达式) { case 值: ..... break; case 值: ..... break; default: ..... br ...
- External Storage 数据存储
一些数据存储的封装:http://hubingforever.blog.163.com/blog/static/17104057920129198236599/ External Storage数据存 ...
- 【Unity3D游戏开发】GameObject.Find()、Transform.Find查找隐藏对象 (十)
GameObjectFindTransformFind查找游戏对象 前置条件 相关API 1 GameObjectFind 2 TransformFind 3 其他查找 实际测试 即使隐藏root节点 ...
- Cheatsheet: 2015 03.01 ~ 03.31
Web The Architecture of Algolia's Distributed Search Network No promises: asynchronous JavaScript wi ...
- Sql合并两个select查询
现有2个查询,需要将每个查询的结果合并起来(注意不是合并结果集,因此不能使用union),可以将每个查询的结果作为临时表,然后再从临时表中select所需的列,示例如下: SELECT get.d ...
- Limiting To Select Only 5 Check Boxes Out Of Ten In Oracle Forms
Suppose you want to give an option to user to select only 5 check boxes from given any number of che ...
- django 简单的邮件系统
django邮件系统 Django发送邮件官方中文文档 总结如下: 1.首先这份文档看三两遍是不行的,很多东西再看一遍就通顺了. 2.send_mail().send_mass_mail()都是对Em ...
- VBA中操作XML
OFFICE2007之后使用了OpenXml标准(伟大的改变),定制文本级的Ribbon可以通过修改压缩包内的xml文件来实现. 先学习一下VBA中操作XML的方法 先引用Microsoft XML ...