我有一个A,B,C的char数组,我想将输出打印为:
A,B,C,AB,AC,BC,ABC
任何建议都将受到赞赏......
public class CharArray {
public static void main(String[] args) {
char alpha[] = {'A', 'B', 'C'};
for(char s : alpha) {
//what to do now
}
}
}
答案 0 :(得分:5)
这会打印组合,如您的示例所示,而不是排列,就像在问题标题中一样。
char alpha[] = {'A', 'B', 'C'};
for (int m = 1 ; m != 1<<alpha.length ; m++) {
for (int i = 0 ; i != alpha.length ; i++) {
if ((m & (1<<i)) != 0) {
System.out.print(alpha[i]);
}
}
System.out.println();
}
答案 1 :(得分:0)
另一个需要考虑的选择是guava(谷歌的一个开源java库)。
设置(设置实用程序类)
/** Returns the set of all possible subsets of set. For example, powerSet(ImmutableSet.of(1, 2)) returns the set {{}, {1}, {2}, {1, 2}}... */
public static <E> Set<Set<E>> powerSet(Set<E> set)