我的编程作业的一部分需要使用State Pattern解析String。明确要求使用状态模式,因此不允许其他选项。
示例字符串为:“ 更新 用户过滤器 userId = user3 设置名称= xxx ”。 (粗体是关键词)。
请求如下:
在解析查询时,您应该使用State Pattern。有四个 陈述:运营商,对象,过滤器和价值观。
我查看了关于状态模式的示例,我想我得到了它,但我无法弄清楚如何将其应用于字符串解析。
如果有人给我一些提示,我会很高兴的。
答案 0 :(得分:1)
首先创建你的状态界面。也许有一种方法:parse
创建4个具体状态。实现每个只解析其部分字符串,您的上下文将负责拆分字符串并更改状态。
在您的上下文类中,您执行以下操作:
OperatorState
始终是第一个,所以init FilterState
)等等......
如果您了解状态模式,那么这应该足以构建解决方案。
注意:您可以拥有一个包含关键字和状态的字典,这样您就可以将其自动化,但在您的情况下,我认为一个简单的解决方案就足够了。
祝你好运
答案 1 :(得分:0)
我可能会误解你的态度是什么意思,所以如果我弄错了,那就不理我了,
假设您正在寻找字符串"abac"
从空状态""
开始并迭代字符串的字符。如果你得到一个'a'
,那么你可以通过"a"
来获得'b'
,转到州"ab"
,获取'a'
,然后返回州{{1}其他任何空状态等等
一旦你找到状态"a"
,你就找到了你的字符串。找到正则表达式是一个简单的DFA。