Java 检查数组是否包含Jep中的数字
我正在使用singularsys的“数学表达式解析器”库。这是它的文档:和 我想做的是: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
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:谢谢,我找到了一个有效的解决方案。见下面的回应。