加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 解析有关搜索条件的用户输入

发布时间:2020-12-15 08:31:28 所属栏目:Java 来源:网络整理
导读:我正在寻找一种解析一些用户输入的方法.输入应显示必须执行的搜索以及必须如何组合. 1和2 (3 AND 2)或1 (3和2)或(1和4) ((3 OR 4)AND 1)或2 等 第一个例子应该以AND方式组合搜索1和2的结果.第二个例子应该以AND方式组合搜索3和2的结果,并以OR方式将该组合的
我正在寻找一种解析一些用户输入的方法.输入应显示必须执行的搜索以及必须如何组合.

> 1和2
>(3 AND 2)或1
>(3和2)或(1和4)
>((3 OR 4)AND 1)或2
>等

第一个例子应该以AND方式组合搜索1和2的结果.第二个例子应该以AND方式组合搜索3和2的结果,并以OR方式将该组合的结果组合到搜索1的结果中.等等.

关于如何做到这一点的任何想法?

解决方法

将您的“结果”视为一个Object,它在以下界面中提供和/或类似的方法:

public interface AndOrCapable<T> {
  public T and(T anOtherResult);
  public T or(T anOtherResult);
}

然后,您可以将用户输入转换为:

Result total = r2.or(r1.and(r3.or(r4))); // your fourth example

这只是为了澄清这个概念 – 在您的情况下,您需要一个动态评估器,因为您使用用户输入.

因此,您仍然需要验证器/解析器将用户输入转换为(语法)树,这将是您用来计算总计的模型.

希望它有所帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读