我想利用用户输入的控制台,如“关键字和关键字2”或“关键字和(1关键字或KEYWORD3)”Java的布尔查询
然后我想解释的是,将其转换成布尔查询数组中的关键字。
它必须处理“和”,“或”和“()”括号。
我宁愿不使用第三方库,但如果没有简单的方法,我会采取。我开始研究Lucene,但它对我的需求来说似乎很复杂,我希望能够查询数组而不是文档。
编辑:注意我对编程相当陌生,所以更简单的解决方案是首选。
我想利用用户输入的控制台,如“关键字和关键字2”或“关键字和(1关键字或KEYWORD3)”Java的布尔查询
然后我想解释的是,将其转换成布尔查询数组中的关键字。
它必须处理“和”,“或”和“()”括号。
我宁愿不使用第三方库,但如果没有简单的方法,我会采取。我开始研究Lucene,但它对我的需求来说似乎很复杂,我希望能够查询数组而不是文档。
编辑:注意我对编程相当陌生,所以更简单的解决方案是首选。
您需要一个解析器,但是如果您将输入封装在将生成有效类的代码中,则可以考虑使用java编译器本身。
有没有一个在默认的类中,或者我应该使用一个像Lucene? 你是什么意思“用代码包装输入”?你有没有一个例子。我是一个noob :) – jigglylizard
你应该可能谷歌的“解析器生成器”,并选择一个你喜欢的。您使用的是Java,所以ANTLR可能是一个不错的选择。或者你可以自己写;递归下降解析器不太难构建。 – tmyklebu