我想在控制台中接受用户输入,例如“keyword1 and keyword2”或“keyword1 and (keyword2 or keyword3)”
然后我想解释它并将其转换为布尔值以查询数组中的关键字。
它必须处理“and”、“or”和“()”括号。
我宁愿不使用第三方库,但如果没有简单的方法,我会接受。我开始研究 Lucene,但它似乎对我的需求很复杂,我希望能够查询数组而不是文档。
编辑:注意我对编程比较陌生,所以首选更简单的解决方案。
您需要一个解析器,但如果您将输入包装在可以生成有效类的代码中,您可以考虑使用 java 编译器本身。
您可以使用JavaCC等编译器的编译器。它可以生成 java 代码,而不是用您自己的语法解析表达式并解释它。在这种情况下,您不应该使用外部库。
JavaCC上有算术计算器的例子。