package y2ssh.sg.test;
import java.io.Serializable;
public class AllTests {
public static void main(String[] args) {
AllTests test = new AllTests();
List list = new ArrayList();
//list.add("1111");
list.add("1101");
list.add("1100");
list.add("1011");
list.add("1010");
list.add("1001");
list.add("1000");
list.add("1110");
String in = "1111"; // 输入
String rst = "";
List flist = test.filterZero(in, list);
if (flist != null && !flist.isEmpty()) {
rst = test.filterOne(in, flist);
System.out.println("选择的结果为:" + rst);
} else {
System.out.println("没有找到记录!");
}
}
/**
* 过滤零
*/
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;
}
}
组合值
最新推荐文章于 2021-08-17 23:19:44 发布