import java.util.Scanner; import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { /* * 仅由小写字母构成的字符串 删除出现次数最少的字符 输出删除后的字符串 其它字符保持原来的顺序 * 多个字符出现的次数都最少 则把这些字符全都删除*/ Scanner scanner = new Scanner(System.in); String string = scanner.nextLine(); Map<String, Integer> charMap = new LinkedHashMap<>(); char[] charArray = string.toCharArray(); // System.out.println("存储字符以及数量>>>>>>>"); for (int i = 0; i < charArray.length; i++) { charMap.put(charArray[i] + "", charMap.getOrDefault(charArray[i] + "", 0) + 1); } // System.out.println("查找字符数量最少的字符数量 即为charMap的value的最小值>>>>>>"); //找到字符最少的的字符 后续查找charMap获取该value对应的字符 后续遍历字符串进行删除 StringBuilder Integer minValue=Integer.MAX_VALUE; for (Map.Entry<String, Integer> entry : charMap.entrySet()) { if (minValue>=entry.getValue()){ minValue=entry.getValue(); } } // System.out.println("遍历删除>>>>>>"+minValue); List<String> deleteCharList=new ArrayList<>(); Iterator<Map.Entry<String,Integer>> iterator=charMap.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry<String,Integer>entry=iterator.next(); /*if (entry.getValue()==minValue){ iterator.remove(); }*/ if (entry.getValue()==minValue){ deleteCharList.add(entry.getKey()); } /*System.out.println(deleteCharList);*/ } StringBuilder result=new StringBuilder(); for (char c:string.toCharArray()){ if (!deleteCharList.contains(c+"")){ result.append(c); } } System.out.println(result); // System.out.println(charMap); // System.out.println("遍历打印"); /* for (Map.Entry<String, Integer> entry : charMap.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); System.out.println(key + ":" + value); }*/ } }