一、问题导入。
-
输入一个字符串,将其按每个字符的频率从低到高的顺序输出。
-
输入:HelloWorld
-
输出:r(1)d(1)e(1)H(1)W(1)o(2)l(3)
分析此题,用Map存放每个字符及其对应出现的次数后,需要按照value值的大小来对key排序。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Map.Entry;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
char c[] = str.toCharArray();
Map<Character,Integer> map = new HashMap<>();
for(int i=0;i<c.length;i++){
Integer n = map.get(c[i]);
if(n==null){
map.put(c[i], 1);
}else{
map.put(c[i], map.get(c[i])+1);
}
}