gpt4 book ai didi

java - 如何将以字符串形式编写的条件转换为 Java "if"条件

转载 作者:太空宇宙 更新时间:2023-11-04 09:33:00 24 4
gpt4 key购买 nike

我有一个用户界面,用户可以在其中构建查询,然后应用这些条件在文本文件中进行搜索。假设字符串如下:A and (B or C) 我还可以访问每个值(A, B, C)、逻辑运算符(and, or) 和分组括号。

所以我需要的是: line.contains(A) && (line.contains(B) || line.contains(C))

boolean found = false;

BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String line = null;
while ((line = reader.readLine()) != null && !contains) {
if (line.contains(A) && (line.contains(B) || line.contains(C))) {
found = true;
}
}

return found;

上述特定条件也可能不起作用,因为我正在每一行中搜索该条件,并且条件可能位于不同的行中。但这是我必须处理的另一个问题:)

知道如何做到这一点吗?

最佳答案

根据您的评论,我能够使用 ScriptEngineManager 解决我的问题。我正在使用 JavaScript 语言构建我想要评估的条件并执行 engine.eval(query)

private boolean containsSearchQuery(InputStream input, String searchQuery) {
boolean match = false;

// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");

BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String lines = reader.lines().collect(Collectors.joining());

engine.put("lines", lines);

try {
match = (boolean) engine.eval(searchQuery);
} catch (ScriptException e) {
System.out.println("Error: " + e.getMessage());
}

return match;
}

关于java - 如何将以字符串形式编写的条件转换为 Java "if"条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56856438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com