/*
输入一个字符串,按字典序打印出该字符串中字符的所有排列。
例如输入字符串abc,
则打印出由字符a,b,c所能排列出来的
所有字符串abc,acb,bac,bca,cab和cba。
*/
import java.util.*;
public class Class32 {
public ArrayList printNewArray(String str){
ArrayList result = new ArrayList();
if(str == null || str.length() == 0){
return result;
}
if(str != null && str.length() > 0){
printNewArrayMain(str.toCharArray(),0,result);
Collections.sort(result);;
}
return result;
}
public void printNewArrayMain(char[] data, int i, ArrayList list){
if(data == null || data.length == 0){
return;
}
if(i < 0 || i > data.length - 1){
return;
}
if(i == data.length - 1){
if(!list.contains(String.valueOf(data))){
list.add(String.valueOf(data));
}
}else{
for(int j = i; j < data.length; j++){
swap(data,i,j);
printNewArrayMain(data,i+1,list);
swap(data,i,j);
}
}
}
public void swap(char[] data, int i, int j){
char temp = data[i];
data[i] = data[j];
data[j] = temp;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}