繁体   English   中英

Java字符串和数学表达式评估器

[英]Java String and Mathematical Expression Evaluators

我们目前使用Jeks解析器来评估表达式。 我看不到用它来评估字符串表达式的方法-例如:

IF(“测试1” =“测试2”)

有什么可以评估Java中的字符串和数学表达式的东西吗? 最好是免费或开源的。

谢谢你的帮助,

安德兹

有很多评估表达式的工具。 正确的答案将取决于您的确切目标。

我要看的两件事:

答案是在Jeks论坛上发帖。 我从马努那里得到了答案。 我以为它不活跃,特别是因为我无法注册它-但这很合理。

但是,如果有人遇到相同的问题,那么以下代码行将使其正常工作:

ExpressionParser parser; // we did have = new ExpressionParser(new JeksExpressionSyntax(), null);
JeksInterpreter interpreter; // 

并创建解释器:

interpreter = new JeksInterpreter() {

      @Override
      public Object getBinaryOperatorValue (Object binaryOperatorKey, Object param1, Object param2)
      {
        // Only functions may take a cell set as parameter
        if ( param1 instanceof JeksCellSet || param2 instanceof JeksCellSet)
          throw new IllegalArgumentException ();
        // Enabled comparison between any type supported by Jeks
        else if (binaryOperatorKey.equals (JeksExpressionSyntax.OPERATOR_EQUAL))
          return param1 != null && param1.equals (param2)
                   ? Boolean.TRUE : Boolean.FALSE;
        // Enabled comparison between any type supported by Jeks
        else if (binaryOperatorKey.equals (JeksExpressionSyntax.OPERATOR_DIFFERENT))
          return param1 != null && param1.equals (param2) ? Boolean.FALSE : Boolean.TRUE;
        else
          return super.getBinaryOperatorValue (binaryOperatorKey, param1, param2);
      }
    };

    parser = new ExpressionParser(new JeksExpressionSyntax(), null);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM