如果还需要排序的话,可以先不打印,都放进TreeSet中排下序,按长度或其他什么要求,这个就不多说了。。。- import java.util.*;
- class CharTest
- {
-
- //因为要反复遍历abc的字符数组,所以将它声明为静态的全局变量。
- static char[] chars="abc".toCharArray();
- public static void main(String[] args)
- {
- for(int i=0;i<chars.length;i++)
- {
- //先遍历出每一个字符存入一个List
- List<Character> list=new ArrayList<Character>();
- list.add(chars[i]);
- find(list);
- }
- }
- /*使用递归,把每次得到的List传入find方法中,先把当前的List打印出来,再去数组chars中找,
- 发现没有包含的字符就把当前的List加上这个字符创建新的List,把新的List继续传进find方法中。
- */
- public static void find(List<Character> list)
- {
- print(list);
- for(int i=0;i<chars.length;i++)
- {
- if(!list.contains(chars[i]))
- {
- List<Character> temp=new ArrayList<Character>(list);
- temp.add(chars[i]);
- find(temp);
- }
- }
- }
- //打印List
- public static void print(List<Character> list)
- {
- for(Character ch:list)
- System.out.print(ch);
- System.out.println();
- }
- }
复制代码
|