网站大量收购独家精品文档,联系QQ:2885784924

介绍java小试表达式解析器用法.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
介绍java小试表达式解析器用法

介绍java小试表达式解析器用法 jeval是为你的java应用程序提供可加入的、高性能、数学、 布尔和函数表达式的解 析和运算的高级资源包。 下载地址:/ 目前最新版本是0.9.4 Beta 这个包可以为我们提高高效的数学表达式计算。 举个例子:这个是我们策划给出的游戏命中率的一部份计算公式 是否命中=a命中率 – (b等级 – a等级) * (命中系数(6)* b闪避率 / 100)+32 为了好象点,我们把他变成:ahit-(blv-alv)*(6*beva/100)+32 在平常我们看到这些都头痛,一般的处理方法是把非变量排除出来,想办法变成 常量+ 变量的形式 但这种式形的结果就是调整不方便,也加大了维护难度。 通常策划给出的每一个常量都是有意义的,改变一个常量就可以调整整个系统的命中率 和其它相连数据。兰州白癜风研究院 也就是说常量可能会经常调整。 Jeval就是用在这种情况下的!!!! 接下来我们先看看jeval没有变量的例子 /** * 测试jeval代码 * * @author eric */ public class JevalTest { public static void main(String[] args) { // System.out.println(System.currentTimeMillis()); Evaluator eva= new Evaluator(); try { System.out.println(eva.evaluate(“2+8/2”)); } catch (EvaluationException e) { e.printStackTrace(); } } } 运行,输出结果为 6.0 是不是好简单呢。 接下来看看有变量的,我们就用游戏命中率公式这个例子 /** * 测试jeval代码 * * @author eric */ public class JevalTest { public static void main(String[] args) { // 我们的游戏公式 ahit-(blv-alv)*(6*beva/100)+32 兰州最好的白癜风医院/ Evaluator eva = new Evaluator(); try { /** * 添加变量到 Evaluator 类实例。 */ eva.putVariable(“ahit”, “33”); eva.putVariable(“blv”, “10”); eva.putVariable(“alv”, “10”); eva.putVariable(“beva”, “5”); /** * 简单输出变量。 */ System.out.println(eva.evaluate(“#{ahit}”)); System.out.println(eva.evaluate(“#{blv}”)); System.out.println(eva.evaluate(“#{alv}”)); System.out.println(eva.evaluate(“#{beva}”)); //公式计算 System.out.println(eva.evaluate(“#{ahit}-(#{blv}-#{alv})*(6*#{beva}/100) +32”)); } catch (EvaluationException e) { e.printStackTrace(); } } } 输出: 33.0 10.0 10.0 5.0 65.0 到这里你已会使用jeval的基本功能了 别外jeval也可以做字符串的相加如: System.out.println(eva.evaluate(“‘A + C’”)); 输出:AC jeval自己也附带十多个数学函数,如: System.out.println(eva.evaluate(“round(3)”));//3的随机数 System.out.println(eva.evaluate(“abs(-1)”));//绝对值 还

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档