package cn.itcast.sort;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
import java.util.Vector;
public class CharSort {
static List list = null;
public static void sortDemo(String str) {
// 重複元素不顯示,這裡用set集合存儲
Set set = new HashSet();
// 将字元串轉換成數組
char[] arr = str.toCharArray();
Arrays.sort(arr);
//實作字元順序存入
for (int i = 0; i < str.length(); i++) {
for (int j = i + 1; j < str.length(); j++) {
for (int k = j + 1; k < str.length(); k++) {
if (arr[i] == arr[j] || arr[j] == arr[k]
|| arr[k] == arr[i])
continue;
//這裡就必須要加上一個空字元,因為存儲
set.add("" + arr[i] + arr[j] + arr[k]);
}
}
}
//Vector 類實作了可動态擴充的對象數組。類似數組,它包含的元素可通過數組下标來通路。
//在 Vector 建立之後。Vector 可根據增加和删除元素的需要來擴大或縮小。
list = new Vector();
list.addAll(set);
//這裡是對配置設定好的字元再次排序,如:123,234;Colletions類主要實作清單List的排序功能
Collections.sort(list);
}
public static void show() {
for (Object s : list) {
System.out.print(s + " ");
}
System.out.println();
System.out.println("-----------------------");
}
public static void main(String[] args) throws Exception {
String s = null;
while(true){
System.out.println("請輸入一串帶有一定比較意義的字元串/退出輸入”0000“:");
Scanner scan = new Scanner(System.in);
s = scan.next();
if(s.equals("0000")){
System.out.println("---------謝謝---------");
break;
}
sortDemo(s);
show();
}
}
}
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyM0gzMycjMxEjNxQDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)