题解 | #删除字符串中出现次数最少的字符#

删除字符串中出现次数最少的字符

http://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9




public class test{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            String str = scanner.nextLine();
            char[] chars = str.toCharArray();
            //统计每个字母的数量
            HashMap<Character, Integer> map = new HashMap<>();
            //这里的for (char value : chars)就是定义一个遍历字符aChar。让它分别等于字符串数组chars里面的各个字符,然后执行for循环里面的内容,
            // 当value被赋值为chars里面所有字符各一次后,就会退出这个循环。
            for (char value : chars) {
                map.put(value, (map.getOrDefault(value, 0) + 1));
                //getOrDefault()方法获取指定key对应value,如果找不到key,就会返回设置的默认值,语法为:hashmap.getOrDefault(Object key, V defaultValue)
                //这句话的意思是:如果没有这个值,就用默认值+1;如果有这个值,就用已经存好的值+1;
            }
            //valuse()方法,返回HashMap中所有值所组成的collection view(集合试图)
            Collection<Integer> values = map.values();
            //找到数量最少的字符数量
            Integer min = Collections.min(values);
            //Collection.max()和Collection.min()方法来查找数组中的最大值和最小值



            //用空字符串替换该字母
            for (Character key : map.keySet()) {
                if (map.get(key) == min){
                    str=str.replaceAll(String.valueOf(key), "");
                    //对str进行更改,必须进行接收,否则输出的还是之前的值。
                }
                //String.valueOf()可以把char类型转成String类型
            }
            System.out.println(str);
        }
    }
}
全部评论

相关推荐

HNU_fsq:建议直接出国,这简历太6了。自愧不如
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务