代码之家  ›  专栏  ›  技术社区  ›  Andez

Java字符串和数学表达式计算器

  •  1
  • Andez  · 技术社区  · 14 年前

    如果(“测试1”=“测试2”)

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

    谢谢你的帮助,

    2 回复  |  直到 14 年前
        1
  •  1
  •   Anon    14 年前

    有很多工具可以用来计算表达式;正确的答案将取决于您的确切目标。

    我要看两件事:

        2
  •  0
  •   Andez    14 年前

    答案是杰克斯论坛上的一则帖子。我从马努那里得到了答案。我认为它不是活跃的,特别是因为我不能在它上注册-但这得到排序。

    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);