GP0*_*007 5 java regex expression mvel
我有一个具有某些数值的变量x = 5;。
我想纠正这样的表达式:
if arr = [4,7,10]包含x在mvel中。
这可能吗,如果可以,怎么做?
截至目前,我必须正确表达为:
x == 4 || x == 7 || x == 10
Run Code Online (Sandbox Code Playgroud)
但因为我可能有一个很大的清单,可以将其做成类似的东西吗
x in [4,7,10,...]
Run Code Online (Sandbox Code Playgroud)
代码 :
for(Rule rule: ruleList)
{
String expresssion = rule.getConditionExpression();
boolean result = (Boolean) expressionHandler.execute(expresssion,ruleEvalData);
}
Run Code Online (Sandbox Code Playgroud)
这里的表达式如下:
表达式 = 'x == 4 || x == 7 || x == 10';
并且ruleEvalData 将包含x。
我想知道是否
表达式 ='x in [4,7,10,...]' 在MVEL 中可能吗?
小智 5
您想使用 MVELcontains运算符。您可以使用文字列表语法构造要测试的值列表。
[4,7,10] contains x
Run Code Online (Sandbox Code Playgroud)
contains奇怪的是,我在 MVEL 的文档页面中找不到该运算符的文档,但它存在于代码中并调用标准Collection.contains()方法。
使用java.util.stream.IntStream类别:
int[] array = {4, 7, 10};
boolean exist = IntStream.of(array).anyMatch(x -> x == 5);
Run Code Online (Sandbox Code Playgroud)
true如果该流的任何元素of(array)与提供的谓词匹配,则返回,否则返回false。
| 归档时间: |
|
| 查看次数: |
7544 次 |
| 最近记录: |