JAVA计算表达式

需求:

1、例如if(score>=85){return 1;}else if(score>=70){return 2;}else if(score>=60){return 3;}else{return 4;}有这一串字符串,要执行这个字符串,

如果score为86分,则能得到1;如果score为30分,则能得到4;/2、

2、或者知道有score=A*B*C这一个字符串,计算出score,其中A/B/C在程序中拿到。

搜资料发现,这一块技术点叫,简单高效的轻量级Java表达式引擎:Aviator

3、pom.xml文件追加如下依赖:

<dependency><groupId>com.googlecode.aviator</groupId><artifactId>aviator</artifactId><version>5.3.0</version></dependency>

4、在java中编写如下代码:

package com.hmblogs.backend.util;import com.alibaba.fastjson.JSONObject;
import com.googlecode.aviator.AviatorEvaluator;
import org.junit.Test;public class CalculateUtil {@Testpublic void main(){String expression2 = "score=A*B*C";JSONObject parseObject = new JSONObject();parseObject.put("A", 3);parseObject.put("B", 3);parseObject.put("C", 1);Object execute2 = AviatorEvaluator.execute(expression2, parseObject);System.out.println("结果为:"+execute2);}
}

5、执行该方法,结果为:9

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/498324.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Vue3】回顾watch,学习watchEffect

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

【记录】成为创作者的第 365 天

机缘 原来 365 天过得这么快&#xff0c;想想一年前的我还只是一个啥都不懂的小白&#xff08;虽然现在懂的也不算多&#xff09;&#xff0c;只能算是刚入门吧。知道 CSDN 这个平台是偶然在朋友圈看到一条有关该平台的博客转发&#xff0c;于是便注册了账号。 还是那句话&am…

归并分治问题练习和题解

文章目录 简介排序数组原理代码 交易逆序对的总数原理代码跑的过程代码 计算右侧小于当前元素的个数原理代码 翻转对代码 简介 大家好,这里是jiantaoyab,这篇文章给大家带来的是归并类型相关的题目练习和解析,涉及到递归的题目大家可以画递归展开图来方便理解,后面的题目有点绕…

【C++】用文件流的put和get成员函数读写文件

题目 编写一个mycopy程序&#xff0c;实现文件复制的功能。用法是在控制台输入&#xff1a; mycooy 源文件名 目标文件名 参数介绍 m a i n main main 函数的参数有两个&#xff0c;一个int类型参数和一个指针数组。 a r g c argc argc 表示参数的个数。参数为void时 a r g …

关于uniapp小程序的分包问题

开发uniapp小程序时&#xff0c;在打包上传代码时会出现超出2M的打包限制不能上传&#xff0c;那么我们该怎么做呢&#xff1f; 1.对于图片&#xff0c;将图片从后端服务取&#xff0c;尽量不要放在静态资源&#xff0c;图片体积会影响打包大小。 2.使用分包&#xff0c;tabb…

网络防御第6次作业

防病毒网关 按照传播方式分类 病毒 病毒是一种基于硬件和操作系统的程序&#xff0c;具有感染和破坏能力&#xff0c;这与病毒程序的结构有关。病毒攻击的宿主程序是病毒的栖身地&#xff0c;它是病毒传播的目的地&#xff0c;又是下一次感染的出发点。计算机病毒感染的一般过…

Cordova打包手机位置权限没有“始终允许“权限

1 找到AndroidManifest.xml文件 2 增加一行 <uses-permission android:name"android.permission.ACCESS_BACKGROUND_LOCATION" />

Linux--使用 Haproxy搭建Web群集

1、 案例概述 Haproxy是目前比较流行的一种群集调度工具&#xff0c;同类群集调度工具有很多&#xff0c;如LVS 和 Nginx。相比较而言&#xff0c;LVS性能最好&#xff0c;但是搭建相对复杂&#xff1a;Nginx的upstream 模块支持群集功能&#xff0c;但是对群集节点健康检查功能…

Python把excel内容保存为图片(非统计图而是纯原表格数据)

一、引入 excel2img 库&#xff0c;没有的话使用 pip install excel2img进行安装 二、采用如下方法进行图片生成 excel文件名为&#xff1a;111.xlsx excel表格里面的sheet名称列表为 [Sheet1, Sheet2] 最终保存为以sheet名称.png的图片 支持跨表格合并项 import excel2i…

1、docker入门

文章目录 1、tocker简介2、tocker的安装&环境配置2、配置阿里云镜像3、基本命令1、镜像命令2、docker基本命令3、镜像基本命令4、Docker 容器常用命令 1、tocker简介 新一代的虚拟化技术 2、tocker的安装&环境配置 uname -r1、首先查看liunx的内核 yum update -y2、更…

前后端项目-part03

文章目录 5.4.4 机构名称5.4.4.1 创建实体类Company5.4.4.2 创建实体类CompanyMapper5.4.4.3 创建实体类CompanyService5.4.4.4 创建实体类CompanyController5.4.4.5 后端测试5.4.4.6 修改basic.js5.4.4.7 修改course.vue5.4.4.8 测试5.4.5 课程标签5.4.5.1 效果5.4.5.2 修改co…

Redis的应用——接口幂等性,分布式锁,基于注解+拦截器的接口幂等改进

目录 引出接口幂等&分布式锁接口幂等性Redisson框架接口幂等改进 缓存三兄弟&#xff1a;缓存击穿、穿透、雪崩缓存击穿缓存穿透缓存雪崩 总结 引出 Redis的应用——接口幂等性&#xff0c;分布式锁&#xff0c;基于注解拦截器的接口幂等改进 接口幂等&分布式锁 系统…