示例代码:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String str = sc.nextLine();
char[] chars = str.toCharArray();
Map<Character, Integer> map = new HashMap<>(16);
for (char ch : chars) {
map.put(ch, map.getOrDefault(ch, 0) + 1);
}
Collection<Integer> values = map.values();
int min = Collections.min(values);
for (Character character : map.keySet()) {
if (map.get(character) == min) {
str = str.replaceAll(character.toString(), "");
}
}
System.out.println(str);
}
}
代码详解:
1. 先使用 toCharArray() 方法将输入的字符串转换为char数组,遍历,使用hashmap储存每个char和它的数量;
2. Map.getOrDefault(Object key, V defaultValue) 方法中,key 表示获取 map 中 key 对应的 value ,如果对应的值为空,则获取默认值 defaultValue ;
3. map.values() 方法将 map 中的所有 value 变成一个集合,然后使用 Collections 中的 min 方法,获取最小值,再根据这个最小值去删除对应字符。