我有4列的sqlite。即id、规则体、反对和bool。我可以插入数据到它和检索使用游标和存储在2d数组。示例行可以类似于
id rule body cons bool
1 jogging(?X) athelete(?x) 0
2 athelete(?X) runsfast(?x) 0
3 athelete(?X),runsfast(?x) champion(?x) 0没有列标题的数组的结构也是如此。现在,我想要做的是,用户必须以以下格式输入
jogging(alan)它必须替换2 2darray中的x,然后在?x位置输入alan。
1 jogging(alan) athelete(alan) 0
2 athelete(alan) runsfast(alan) 0
3 athelete(alan),runsfast(alan) champion(alan) 0如果找到慢跑(阿兰),就把慢跑的坏处(艾伦)复制到newarray[]。
newarray[athelete(alan)]newarray[]现在带着运动员(艾伦)。现在newarray[]已经更新了,所以如果找到保存运行速度(Alan)到newarray[]中,请再次搜索运动员(Alan)。再次更新,我们有阿兰,运行(艾伦)在newarray[]。
newarray[athelete(alan),runfast(alan)]现在搜索阿兰(阿兰),跑步(艾伦)和添加冠军(阿兰)的newarray[]重复,这一次没有找到匹配,所以退出。
newarray[athelete(alan),runfast(alan),runfast(alan)]有什么想法吗?
发布于 2016-05-31 06:48:30
一种方法是使用字符分割,在您的情况下,它(因此它将分裂慢跑( ?x)为慢跑和?x)u可以剥离它)使用替换方法。同样地,用慢跑( alan)来做,所以它将是慢跑和alan),将它们添加到数组或任何你可以轻松使用的存储结构中。在数组的情况下,您可以在
rule[x] Matches fact[x]
copy fact[x+1] into rule[x+1] 因此,如果发现一个数组中的慢跑等于在另一个数组中慢跑,那么将下一个项复制到其他数组替换?x。
我想你是在研究基于规则的喇叭条款,这就是你为什么使用这种格式的原因吧?
发布于 2016-05-09 11:01:38
使用HashMap存储具有唯一键的单个行元素,并将映射存储在数组中。您可以在一个循环中检索每个映射并获取键的值。
发布于 2016-05-09 11:25:09
我认为一种比在数组中引用sqlite数据更好的方法是使用游标加载器并在位置上使用游标,然后再使用2d数组。游标是短暂的,可以关闭和丢弃。在适配器中使用交换光标更容易操作..。诸若此类。只是个主意。
https://stackoverflow.com/questions/37113685
复制相似问题