已知数组如X=[1,2,3,4],输出其所有子集,如1,2,3,4,12,23,34,123,234,1234…
public class AllSubSet {
public static void main(String[] args) {
String[] str = { "1", "2",
"3", "4" };
int len = str.length;
int max = 1 << len;// 16种情况,分别使用 0000——1111表示
List
for (int i = 0; i < max; i++) {
String binaryString = Integer.toBinaryString(i);
switch (binaryString.length()) {
case 1:
binaryString = "000" + binaryString;
break;
case 2:
binaryString = "00" + binaryString;
break;
case 3:
binaryString = "0" + binaryString;
break;
default:
break;
}
list.add(binaryString);
}
for (String string : list) {
StringBuilder builder = new StringBuilder();
for (int j = 0; j < string.length(); j++) {
if (string.charAt(j) == '1') {
builder.append(str[j]);
}
}
System.out.println(builder.toString());
}
// List
// for (StringBuffer sb : list) {
// System.out.println(sb.toString());
// }
}