java-如何基于字符串进行决策

java-如何基于字符串进行决策,java,string,parsing,decision-tree,Java,String,Parsing,Decision Tree,如果您有一个类似于第7卷的字符串,notcontact xxxx,not_lightlevel-1280.0,,并且该字符串可以随其他选项而变化,如振动、亮度、屏幕亮度等…但格式相同…(设置值、设置值…) 根据您当前掌握的有关这些设置的信息做出决定的最佳方式是什么?(即,通过对照当前上下文信息检查预定义字符串,返回true或false) 假设您有当前的上下文信息,即当前音量、可控震源设置、亮度、屏幕亮度等,您希望将其与预定义字符串(如我上面写的字符串)进行比较 你会怎么做 你能解析字符串并检查每

如果您有一个类似于第7卷的字符串,notcontact xxxx,not_lightlevel-1280.0,,并且该字符串可以随其他选项而变化,如振动、亮度、屏幕亮度等…但格式相同…(设置值、设置值…)

根据您当前掌握的有关这些设置的信息做出决定的最佳方式是什么?(即,通过对照当前上下文信息检查预定义字符串,返回true或false)

假设您有当前的上下文信息,即当前音量、可控震源设置、亮度、屏幕亮度等,您希望将其与预定义字符串(如我上面写的字符串)进行比较

你会怎么做

你能解析字符串并检查每一种可能性吗?虽然可行,但听起来不太吸引人

我可以使用决策树吗?如果是的话,有人能告诉我怎么做吗


谢谢

把它解析成一个
HashMap
将是我的第一个想法

如果你事先知道所有的钥匙,你也可以使用POJO。(您仍然必须使用反射填充字段,但可以保证所有其他操作的编译时类型安全。)


(我可能完全误解了你的问题,但我找不到你所描述的问题与决策树之间的任何联系。)

我会尝试从“真实对象”和所需语义的角度来思考这个问题:上面的字符串只能被视为[序列化]实现(例如地图)HashMap也是我的第一个想法,但我必须迭代映射并检查每个设置/值。我想问的是,是否有更聪明的方法可以避免所有的“如果”statements@kkudi这取决于你的比较逻辑。是否要确定设置A是否等于设置B?或者它是否比另一个更大?你有部分字符串吗?如果这样做,是否忽略字符串中没有出现的键?@biziclop No。字符串中的每个“设置”都会与其等效的当前设置进行比较。字符串可能不包含所有上下文信息,但仅包含一个子集。但是,由于我不知道字符串由哪些“设置”组成,我必须检查它们中的每一个。@kkudi您可以简单地遍历映射的条目,并将每个条目与另一个映射的相应值进行比较。(
Map.keySet()
Map.entrySet()
是相关的方法。)这样,代码中就不需要多个
if
语句了。@biziclop啊,我从来没有想到过这种方法!因此,基本上我的一个映射是“静态”定义的,包含所有设置及其各自的当前值。另一个是我从字符串中得到的地图