Java将字符串转换为逻辑

时间:2019-06-14 23:48:39

标签: java string parsing logic

//具有Java 7/8:     字符串逻辑=“ 123 OR 345 OR 678 NAND 901”;

//Should evaluate something simililar to this: 
String test1 = "abc345678opq"; String test2 = "abc123901";

boolean isCheckOk1 = test1.contains("123") || test1.contains("345") || test1.contains("678") && !test1.contains("901");

boolean isCheckOk2 = test2.contains("123") || test2.contains("345") || test2.contains("678") && !test2.contains("901");

//where isCheckOk1 will be true

//and isCheckOk2 will be false;

Java中是否有一种通用的库来实现这一目标?

下一级:

"123 OR 345 OR 678 NAND (901 AND 902)"

谢谢!

1 个答案:

答案 0 :(得分:1)

否,但是您可以使用正则表达式:

此:

boolean isCheckOk1 = test1.contains("123") || test1.contains("345") || test1.contains("678") && !test1.contains("901");

可以编码为:

boolean isCheckOk1 = test1.matches("(?!.*901).*(123|345|678).*");

“加分”可以编码为:

boolean isCheckOk1 = test1.matches("(?!.*901.*902)(?!.*902.*901).*(123|345|678).*");

在正则表达式中,复杂的逻辑将变得难以处理。