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); } } }