public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); String s = "abcd"; //添加它本身 list.add(s); char[] chars = s.toCharArray(); for (int i = 0; i < chars.length; i++) { //j=i的原因是,避免出现重复的排列 for (int j = i; j < chars.length; j++) { //自己不跟自己交换,跳过 if (i == j) continue; //交换 char temp = chars[j]; chars[j] = chars[i]; chars[i] = temp; list.add(Arrays.toString(chars)); //重新赋值一个没有被改变过的的数组 chars = s.toCharArray(); } } System.out.println(s + "的排序有" + list.size() + "种,分别为" + list.toString()); }
【java】打印出一个字符串的所有排列
最新推荐文章于 2024-07-10 11:03:05 发布