好吧,又成了api调用开发工程师
字符统计
https://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); /** * 输入一个只包含小写英文字母和数字的字符串,按照不同字符统计个数由多到少输出统计结果, * 如果统计的个数相同,则按照ASCII码由小到大排序输出 */ String string = scanner.next(); char[] charArray = string.toCharArray(); HashMap<Character, Integer> hashMap = new HashMap<>(); for (int i = 0; i < charArray.length; i++) { char c = charArray[i]; if (hashMap.get(c) == null) { hashMap.put(c, 1); } else { hashMap.put(c, hashMap.get(c) + 1); } } // 创建集合帮助排序 TreeSet<Order> treeSet = new TreeSet<>((o1, o2) -> { // 包装类的比较用 equals if (Objects.equals(o1.getCount(), o2.getCount())) { // 次数相同按照ASCII码进行升序排序 return o1.getC() - o2.getC(); } // 出现次数倒序排。由大到小 return o2.getCount() - o1.getCount(); }); // 添加到集合中进行排序 for (Map.Entry<Character, Integer> entry : hashMap.entrySet()) { treeSet.add(new Order(entry.getKey(), entry.getValue())); } // 输出 StringBuilder builder = new StringBuilder(); for (Order order : treeSet) { builder.append(order.getC()); } System.out.println(builder); } } class Order { private Character c; public Integer getCount() { return count; } public Order(Character c, Integer count) { this.c = c; this.count = count; } public void setCount(Integer count) { this.count = count; } public Character getC() { return c; } public void setC(Character c) { this.c = c; } private Integer count; }