Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查数组是否包含Jep中的数字_Java - Fatal编程技术网

Java 检查数组是否包含Jep中的数字

Java 检查数组是否包含Jep中的数字,java,Java,我正在使用singularsys的“数学表达式解析器”库。这是它的文档:和 我想做的是: Jep jep = new Jep(); jep.addVariable("ARR", new int[]{1,2,3}); jep.parse("ARR == 3"); Object result = jep.evaluate(); boolean ok = false; if(result != null)ok = Boolean.valueOf(re

我正在使用singularsys的“数学表达式解析器”库。这是它的文档:和

我想做的是:

    Jep jep = new Jep();

    jep.addVariable("ARR", new int[]{1,2,3});
    jep.parse("ARR == 3");

    Object result = jep.evaluate();
    boolean ok = false;
    if(result != null)ok = Boolean.valueOf(result.toString());
    System.out.println(ok);
我设置了一个名为
ARR
的变量,其中包含数字1、2和3。 我需要它检查数组是否包含数字3,并返回“true”


你知道该使用什么运算符或函数吗?如果可能的话?我在文档中找不到任何东西,但我觉得它是可行的。

我最终构建了一个自定义函数:

public static class JepContains extends BinaryFunction
    {
      public Object eval(Object arg1, Object arg2)
      {
          int[] arr = (int[])arg1;
          int target = ((Double)arg2).intValue();         
          for(double i : arr)
              if(i==target)
                  return true;        
          return (Object)false;
      }
    }
下面是我如何使用它的:

jep.addFunction("contains",new JepContains());
jep.addVariable("ARR", new int[]{1,2,3});
jep.parse("contains(ARR, 2)"); // returns "true"

我不熟悉这个库,但它看起来是
jep.parse(“ARR==3”)是错误的。首先需要创建vector,然后使用类Ele在该vector中查找对象。方法,
ele(java.lang.Object-vec,java.lang.Object-indexObject)
似乎适合您的需要。您可以在问题上加上“singularsys”和“Jep”以获得更好的回答。@Sabir_Khan:谢谢,我找到了一个有效的解决方案。见下面的回应。