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[]) { ...
随机推荐
- java实现多线程断点续传,上传下载
采用apache 的 commons-net-ftp-ftpclient import java.io.File; import java.io.FileOutputStream; import ja ...
- python3.5.1语法
1.print (变量名) print("字符串") 2.a=1 id(a)返回a在内存中的地址 3.可以用table弹出提示 #coding:utf-8 4.输入3/2 结果 ...
- CentOS 6.5中linux grub修复
在使用Linux的过程中,难免会出现开机提示grub >而无法启动,可能是系统中/boot/grub文件丢失等原因造成的,当出现此问题的时候只要系统分区没有格式化一般是可以修复的,下面就以虚拟 ...
- axis2通过wsdl生成客户端程序并本地调用
wsdl2java -uri http://10.0.5.12/brm/services/RuleEngine1374389539674484?wsdl -p east.mvc.webservice. ...
- C#中实现多继承的方法
有一个类叫老虎,还有一个类叫苍蝇.现在新创一个超级老虎类,一种可以飞的老虎,超级老虎由于同时也继承自苍蝇 namespace Interface { //飞的接口 public interface I ...
- SQL Server 中 RAISERROR 的用法
From : http://www.cnblogs.com/xugang/archive/2011/04/09/2010216.html raiserror 是由单词 raise error 组 ...
- SQL查询语句 group by后, 字符串合并
合并列值 --******************************************************************************************* 表 ...
- .htaccess文件 301重定向URL重写[NC][R][F][L]是什么意思
.htaccess中的[NC][R][F][L]几个标记是什么意思 NC: no case,就是说不区分大小写 R:redirect,重定向 F:forbidden,禁止访问 L:last,表示已经是 ...
- VB6.0
1. 安装包来自 http://msdn.itellyou.cn/ 下载的文件为: sc_vb6_ent_cd1.iso sc_vb6_ent_cd2.iso 2.安装时,"请输入产品的 I ...
- 对sizeof的思考
一.sizeof的特点(与strlen比较) 1.sizeof是运算符,strlen是函数,这意味着编译程序在编译的时候就把sizeof计算过了,所以sizeof(x)可以用来定义数组维数. 例如 i ...