Domanda

Usiamo il parser Jeks attualmente per valutare le espressioni. Non riesco a vedere un modo per valutare espressioni stringa con esso - per esempio:

IF ( "Test 1" = "Test 2")

C'è qualcosa là fuori che può valutare la stringa e matematiche espressioni in Java? Preferibilmente libero o aperto.

Grazie per qualsiasi aiuto,

Andez

È stato utile?

Soluzione 2

La risposta è stata un post sul forum Jeks. Ho ricevuto una risposta da Manu. Ho pensato che non era attiva soprattutto perché non ho potuto registrare su di esso -. Ma che hanno risolto

Ma se qualcuno ha lo stesso problema quindi le seguenti righe di codice saranno farlo funzionare:

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

E per creare l'interprete:

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

Altri suggerimenti

Ci sono un sacco di strumenti là fuori per valutare le espressioni; la risposta corretta dipenderà vostri obiettivi precisi.

Due cose che mi piacerebbe un'occhiata a:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top