/** * 过滤零 */ public List filterZero(String in, List list) { char[] ch = in.toCharArray(); List ls = list; for (int i = 1; i < ch.length; i++) { List rntList = new ArrayList(); if (ch[i] == '0') {// 逐位过滤 rntList = filterZeroList(i, ls); // 结果list if (rntList == null || rntList.isEmpty()) { // 没有找到1的记录,默认置0 ls = null; break; } ls = rntList; } } return ls; }
/** * 按0逐位过滤原List * * @param indx * @param list * @return */ private List filterZeroList(int indx, List list) { List rList = new ArrayList(); for (Object obj : list) { String str = (String) obj; char ch = str.charAt(indx); if (ch == '0') { rList.add(str); } } return rList; }
/** * 过滤1 * * @param in * @param flist * @return */ public String filterOne(String in, List flist) { char[] ch = in.toCharArray(); List ls = flist; for (int i = 1; i < ch.length; i++) { // 从第二位开始 List rntList = new ArrayList(); if (ch[i] == '1') {// 逐位过滤 rntList = filterOneList(i, ls); // 根据具体位置,得到结果list if (rntList == null || rntList.isEmpty()) { // 没有找到1的记录,默认置0 ls = filterZeroList(i, ls); } else { ls = rntList; } } } return ls.get(0).toString(); }
/** * 按1逐位过滤原List * * @param i * @param ls * @return */ private List filterOneList(int indx, List ls) { List rList = new ArrayList(); for (Object obj : ls) { String str = (String) obj; char ch = str.charAt(indx); if (ch == '1') { rList.add(str); } } return rList; }