0

我想在控制台中接受用户输入,例如“keyword1 and keyword2”或“keyword1 and (keyword2 or keyword3)”

然后我想解释它并将其转换为布尔值以查询数组中的关键字。

它必须处理“and”、“or”和“()”括号。

我宁愿不使用第三方库,但如果没有简单的方法,我会接受。我开始研究 Lucene,但它似乎对我的需求很复杂,我希望能够查询数组而不是文档。

编辑:注意我对编程比较陌生,所以首选更简单的解决方案。

4

2 回答 2

0

您需要一个解析器,但如果您将输入包装在可以生成有效类的代码中,您可以考虑使用 java 编译器本身。

于 2012-12-08T20:46:42.953 回答
0

您可以使用JavaCC等编译器的编译器。它可以生成 java 代码,而不是用您自己的语法解析表达式并解释它。在这种情况下,您不应该使用外部库。

JavaCC上有算术计算器的例子。

于 2012-12-08T20:57:03.477 回答