[Java] 输入一个字符串,确定每个字符串的个数,然后按照个数的多少升序输出。 →→→→→进入此内容的聊天室

来自 , 2019-07-03, 写在 Java, 查看 118 次.
URL http://www.code666.cn/view/277281aa
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.Comparator;
  4. import java.util.HashMap;
  5. import java.util.Iterator;
  6. import java.util.List;
  7. import java.util.Map.Entry;
  8. import java.util.Scanner;
  9.  
  10. public class StringChat {
  11.  
  12.         public static void main(String[] args) {
  13.                
  14.                 Scanner sc = new Scanner(System.in);
  15.                 String s = sc.nextLine();
  16.                 sc.close();
  17.                 HashMap<Character, Integer> hashmap = new HashMap<Character, Integer>();
  18.                 for (int i = 0; i < s.length(); i++) {
  19.                         if (hashmap.containsKey(s.charAt(i))) {
  20.                                 hashmap.put(s.charAt(i), hashmap.get(s.charAt(i)) + 1);
  21.                         } else {
  22.                                 hashmap.put(s.charAt(i), 1);
  23.                         }
  24.                 }
  25.                 Iterator<?> iter = hashmap.entrySet().iterator();
  26.                 while (iter.hasNext()) {
  27.                         @SuppressWarnings("unchecked")
  28.                         Entry<Character, Integer> next = (Entry<Character, Integer>)iter.next();
  29.                         Entry<Character, Integer> entry = next;
  30.                         Character c = (Character) entry.getKey();
  31.                         Integer n = (Integer) entry.getValue();
  32.                         System.out.println(c + "  :  " + n);
  33.                 }
  34.                 List<Entry<Character, Integer>> list = new ArrayList<Entry<Character, Integer>>(hashmap.entrySet());
  35.                 Collections.sort(list, new Comparator<Entry<Character, Integer>>() {
  36.                         @Override
  37.                         public int compare(Entry<Character, Integer> o1, Entry<Character, Integer> o2) {
  38.                                 return o1.getValue() - o2.getValue();
  39.                         }
  40.                 });
  41.                 StringBuilder strBuilder = new StringBuilder();
  42.                 for (int i = 0; i < list.size(); i++)
  43.                         for (int j = 0; j < list.get(i).getValue(); j++)
  44.                                 strBuilder.append(list.get(i).getKey());
  45.                 System.out.println(strBuilder.toString());
  46.         }
  47.        
  48. }
  49.  
  50.  

回复 "输入一个字符串,确定每个字符串的个数,然后按照个数的多少升序输出。"

这儿你可以回复上面这条便签

captcha