質問

現在、式を評価するために Jeks パーサーを使用しています。これを使用して文字列式を評価する方法がわかりません。たとえば、次のようになります。

IF( "テスト 1" = "テスト 2")

Java で文字列と数式を評価できるものはありますか?できれば無料またはオープンソースです。

助けてくれてありがとう、

アンデス

役に立ちましたか?

解決 2

答えは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);

他のヒント

式を評価するツールはたくさんあります。正しい答えはあなたの正確な目標によって異なります。

注目したいのは次の 2 点です。

  • コモンズEL, 、評価します JSP 2.0 式言語.
  • サイ, 、JavaScript を評価します (これは JDK 1.6 の一部だと思いますが、そのままでは使用していません)。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top