import java.util.Arrays;
public class CharList {
//遍历所有可能的排列结果
public static void traversal(char[] chss, int index){
//for循环,从index位置开始向前(向右), index位置的数与i位置的数互换
for(int i = index; i < chss.length; i ++) {
char[] chs = Arrays.copyOf(chss, chss.length); //Copy出新数组(为了修改其值时互不影响)
char temp = chs[index];
chs[index] = chs;
chs = temp;
if(index == chs.length-1) { //到了字符串末, 输出结果
System.out.println(new String(chs));
break; //跟出此次循环, 此traversal方法执行完毕,跳回上一级循环(在上一个方法体中)
}
traversal(chs, index+1); //递归
}
}
//Test
public static void main(String[] args) {
String str = "abcd";
char[] chs = str.toCharArray(); //转成字符数组
traversal(chs, 0);
}
}
用递归的话可以实现,位运算没有试过。 |