求解一个字符串的所有字符的组合 Java代码

来源:互联网 发布:阿里布达年代祭百度云 编辑:程序博客网 时间:2024/05/21 19:40
package day_10_1;import java.util.*;public class Main {    public static  Set<String> stringSet = new TreeSet<>(new CompareAccordToStringLength());    public static void main(String[] args) {        getAllGroup("abc");        System.out.println(stringSet.toString());    }    public static Set<String> getAllGroup(String str){           return getAllGroupUnit(str, stringSet, 0);    }    public static Set<String> getAllGroupUnit(String str,  Set<String> stringSet, int begin){        if (str.length() - 1 == begin){            stringSet.add(str.charAt(begin) + "");        }else{            Set<String> set = getAllGroupUnit(str, stringSet, begin + 1);            combineStr(set, str.charAt(begin));            stringSet.add(str.charAt(begin) + "");        }        return stringSet;    }    private static void combineStr(Set<String> stringSet, char a){        if (null != stringSet && !stringSet.isEmpty()){          ArrayList<String> strings = new ArrayList<>(stringSet);            for (String str : strings){                stringSet.add(a + str);            }        }    }}class CompareAccordToStringLength implements Comparator<String>{    @Override    public int compare(String o1,String o2){        if (o1.length() > o2.length()){            return 1;        }else{           if (o1.length() == o2.length()){               return o1.compareTo(o2);           }            return -1;        }    }}
0 0