方法很low,希望大家给出修改方向
import java.util.*;
public class Main{
public static void main(String [] args){
getCharacterSort();
}
public static void getCharacterSort(){
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
String input = scan.nextLine();
Map<String, Integer> map = new HashMap<>();
int len = input.length();
for(int i = 0 ; i < len; i++){
String temp = input.charAt(i) + "";
if(map.containsKey(temp)){
map.put(temp, map.get(temp) + 1);
} else{
map.put(temp, 1);
}
}
// 针对map的value进行排序
List<Integer> list = new ArrayList(map.values());
Integer[] val = list.toArray(new Integer[list.size()]);
Arrays.sort(val);
for(int i = val.length-1; i >= 0; i--){
List<String> temp = new ArrayList<>();
for(String key: map.keySet()){
if(val[i] == map.get(key)){
temp.add(key);
}
}
int size = temp.size();
i = i - size + 1;
if(size > 1){
String [] keys = temp.toArray(new String[size]);
Arrays.sort(keys);
for(int j = 0; j < keys.length; j++){
System.out.print(keys[j]);
}
} else {
System.out.print(temp.get(0));
}
}
System.out.println();
}
}
}

京公网安备 11010502036488号