public static void main(String[] args) {
char datas[] = {'a','b','c','d','z','e','q'};
printResult("",datas);
} public static void printResult(String result,char datas[]){ if(result.length() == datas.length){
System.out.println(result);
return;
} for (int i = 0; i < datas.length; i++){
String data = String.valueOf(datas[i]);
if(result.indexOf(data) == -1) {
printResult(result+data,datas);
}
}
}

解决方案 »

  1.   

    展示递归么?总的说明一下这段代码想达到啥目的,大家才看得到递归的好来。
    比方说,我想学习一下 system.out.println,这段代码就杀鸡用牛刀了
      

  2.   

    代码实现的功能是打印abcdzeq等字母换位组合排列的全部结果。
      

  3.   

    因为一开始写的时候,是以元素为排列目标,所以,里面元素就不能出现重复了。  换做以下标为排列目标,那么就不再关心元素是什么了。  程序大概修改了一下,不知道这样是否满足你的需求。public static void main(String[] args) {
                char datas[] = {'a','b','c','d'};
                printResult("","",datas);
        }
        public static void printResult(String result,String indexs,char datas[]){
                if(result.length() == datas.length){
                    System.out.println(result);
                   return;
               }
               for (int i = 0; i < datas.length; i++){
                   String index = String.valueOf(i);
                   if(indexs.indexOf(index+",") == -1){
                       printResult(result+datas[i],indexs+i+",",datas);
                   }
               }
       }