当前位置: 首页 > 面试题库 >

Java API中的条件字符串解析器?

姜俊民
2023-03-14
问题内容

我想解决以下条件字符串。因为我想在我的项目中支持动态条件。

a != 0 && b > 5

我期望的程序是

public boolean resolve() {
    String condition = "a != 0 && b > 5";
    Map<String, Object> paramMap = new HashMap<String, Object>;
    paramMap.put("a", 2);
    paramMap.put("b", 6);
    boolean result = ConditionResolver.resolve(condition, paramMap);
    if(result) {
        //do something
    }
}

更新:

我不尝试解析数学方程式,如下所示

((a + b) * y) /x

问题答案:

从Java 1.6开始,如果您足够使用和/或不想引入其他库,则可以使用ScriptEngineand评估 javascript

ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("javascript");
SimpleBindings bindings = new SimpleBindings();

bindings.put("a", 0);
bindings.put("b", 6);

boolean firstEval =  (Boolean) scriptEngine.eval("a != 0 && b > 5", bindings);
System.out.println(firstEval);

bindings.put("a", 2);
bindings.put("b", 6);

boolean secondEval =  (Boolean) scriptEngine.eval("a != 0 && b > 5", bindings);
System.out.println(secondEval);

输出量

false
true


 类似资料:
  • 问题内容: 在Java中执行以下操作的最佳方法是什么。我有两个输入字符串 我需要从字符串中提取类型和数字。 在这种情况下,答案是type =“ a good”和number =“ 234” 谢谢 问题答案: 您可以使用正则表达式:

  • 我有一个输入表单,允许某人键入unicode字符。所以它可能是类似于“嘿,uF32A怎么了?如果我得到这个字符串,它将有一个子字符串“\uF32A”,我如何将其转换为字符“\uF32A”?

  • Milo Yip 2016/9/27 本文是《从零开始的 JSON 库教程》的第三个单元解答编。解答代码位于 json-tutorial/tutorial03_answer。 1. 访问的单元测试 在编写单元测试时,我们故意先把值设为字符串,那么做可以测试设置其他类型时,有没有调用 lept_free() 去释放内存。 static void test_access_boolean() {

  • 我以前写过这个 不知道有没有更好的办法。 我想要的是 或者 像 在 PHP 中。 有没有类似的方法将条件直接放入字符串中?

  • 问题内容: 您如何解析存储在Java字符串对象中的xml? Java的XMLReader仅从URI或输入流中解析XML文档。无法从包含xml数据的字符串进行解析? 现在,我有以下内容: 在我的处理程序上,我有这个: 提前致谢 问题答案: 该SAXParser的可以读取的的InputSource。 一个 InputSource的 可以采取 读者 在其构造 因此,您可以通过StringReader来解

  • 问题内容: 我有以下Json字符串 我正在尝试解析它并打印出每个名称和值-最简单的方法是什么?我尝试了jQuery.parseJSON但我不知道如何使用它 示例代码会很棒 问题答案: 结果是: jsFiddle示例:http://jsfiddle.net/bradchristie/XtzjZ/1/