很几条这样的数据:
1、A+B+C-D+
2、A+B-C+D-
3、C+A-B+E+
4、A+B+C-D-
....
以上字母是无序。需要快速查找这样形式的数据,
包含有
A+C-
结果就是:1

(A+|B+)&C-拆分出来就是需要找到:A+C-或B+C-,只要满意两者之一就找出来,
结果是:
1、A+B+C-D+
4、A+B+C-D-求算法,或思路,最好考虑一下性能。

解决方案 »

  1.   

    (A+|B+)&C-这种需要自己解析么?其他indexOf或者contains不就可以解决了么。。
      

  2.   

    (A+|B+)&C-   这种表达式写个方法来拆分, 返回符合条件的A+,C-和B+,C-  (List<List<String>>)
    然后contains来判断.这我想到的,没考虑效率方面..
      

  3.   

    个人想法是一个二维数组,你不需要存储abcd,只需要存储+ -就行了。然后遍历数组,查询对应位置是不是+或-.
    这应该是最简单的实现了。
      

  4.   

    标准的产生式问题, 去看下javacc或antlr。任意一个,你这个问题十分钟就搞定了。
      

  5.   

    1、用javacc
    2、用解释器模式自己写一个解释器