package com.loaderman.test;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
public class Test {
/**
* 從鍵盤接收一個字符串, 程序對其中所有字符進行排序,例如鍵盤輸入: helloitcast程序打印:acehillostt
* 分析:
* 1,鍵盤錄入字符串,Scanner
* 2,將字符串轉換為字符數組
* 3,定義TreeSet集合,傳入比較器對字符排序並保留重復
* 4,遍歷字符數組,將每一個字符存儲在TreeSet集合中
* 5,遍歷TreeSet集合,打印每一個字符
*/
public static void main(String[] args) {
//1,鍵盤錄入字符串,Scanner
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個字符串");
String line = sc.nextLine();
//2,將字符串轉換為字符數組
char[] arr = line.toCharArray();
//3,定義TreeSet集合,傳入比較器對字符排序並保留重復
TreeSet<Character> ts = new TreeSet<>(new Comparator<Character>() {
@Override
public int compare(Character c1, Character c2) {
//int num = c1 - c2; //自動拆箱
int num = c1.compareTo(c2);
return num == 0 ? 1 : num;
}
});
//4,遍歷字符數組,將每一個字符存儲在TreeSet集合中
for(char c : arr) {
ts.add(c); //自動裝箱
}
//5,遍歷TreeSet集合,打印每一個字符
for(Character c : ts) {
System.out.print(c);
}
}
}