给定一个字符串,打印输出有重复的字符和重复的次数,并且按照重复的次数升序输出

最近在面试,好多的面试题,笔试题,有的笔试题搜百度搜不到点子上的

这个刚开始看着很简单,后面说要排序,想起了用Collections里面自定义的比较器

代码:

public class StringDemo {
    public static void main(String[] args) {
        String str = "asdzxasdqweasdzs";
        char[] chars = str.toCharArray();
        Map<Character, Integer> map = new HashMap<>();
        for (char ch : chars) {
            if (map.containsKey(ch)) {
                map.put(ch, map.get(ch) + 1);
            } else {
                map.put(ch, 1);
            }
        }
        System.out.println("map:" + map);
        //排序
        List<Map.Entry<Character, Integer>> list = new ArrayList<>();
        for (Map.Entry<Character, Integer> entry : map.entrySet()) {
            list.add(entry);
        }

        Collections.sort(list, new Comparator<Map.Entry<Character, Integer>>() {
            @Override
            public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) {
                return o1.getValue() - o2.getValue();
            }
        });
        System.out.println("排序后:" + list);
    }
}

结果:
map:{a=3, q=1, s=4, d=3, e=1, w=1, x=1, z=2}
排序后:[q=1, e=1, w=1, x=1, z=2, a=3, d=3, s=4]

  

原文地址:https://www.cnblogs.com/cmmplb/p/11963518.html

时间: 2024-10-11 06:36:25

给定一个字符串,打印输出有重复的字符和重复的次数,并且按照重复的次数升序输出的相关文章

Given a string, find the length of the longest substring without repeating characters.(给定一个字符串,找到最长的子串的长度,这个子串不存在重复的字符。 )

Given a string, find the length of the longest substring without repeating characters. Examples: Given "abcabcbb", the answer is "abc", which the length is 3. Given "bbbbb", the answer is "b", with the length of 1.

【leetcode-03】给定一个字符串,请你找出其中不含有重复字符的最长子串的长度

开个新坑,leetcode上面做题目.下面是题目描述: <!-- 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3. 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1. 示例 3: 输入: "pwwkew" 输出

给定一个字符串,找到第一个只出现一次的字符的下标,找不到输出-1。

1. 给定一个字符串,找到第一个只出现一次的字符的下标,找不到输出-1. sample: 输入:"abcdefcba" 输出:3 解法:先遍历字符串,用一个map记录每个字符出现的次数,再次遍历字符串,找到第一个只出现一次的字符,复杂度为O(n). #include <iostream> #include <string> #include <cstring> #include <map> using namespace std; int

有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数

1.有一个字符串,其中包含中文字符.英文字符和数字字符,请统计和打印出各个字符的个数. Map接口定义的集合又称查找表,用于存储所谓"Key-Value"映射对.Key可以看成是Value的索引,作为Key的对象在集合中不可以重复. import java.util.HashMap; import java.util.Map; public class Demo { public static void main(String[] args) throws Exception{ Str

读取一个文件,给定一个字符串,判断这个字符串在文件中出现的次数

读取一个文件,给定一个字符串,判断这个字符串在文件中出现的次数,面试笔试经常遇到的问题 public class CountStringTest { public static void main(String[] args) { try { //统计E盘下面test.txt中的q字符出现的次数 System.out.println("E盘下面test.txt中的q字符出现的次数为:"); System.err.println(count("E:\\test.txt"

022给定一个字符串类型(string)表示的小数,打印出它的二进制表示(keep it up)

给定一个字符串类型(string)表示的小数,打印出它的二进制表示. 这个题注意字符串的合法性. 不过下面的代码没有处理那种无限循环的小数, 当出现无限循环小数时,while(other>0)可能永久为true 代码: #include <iostream> #include <string> std::string to_binary_string(const std::string& vNumStr) { std::string::size_type Pos =

给定一个字符串类型表示的小数,输出其二进制表示

题目 给定一个字符串类型(string)表示的小数,打印出它的二进制表示. 如果这个数无法精确地表示为二进制形式,输出”ERROR”. 解答 整数部分通过不断地对2取余然后除以2来得到其二进制表示, 或是不断地和1按位与然后除以2得到其二进制表示. 小数部分则通过不断地乘以2然后与1比较来得到其二进制表示. 小数部分转化为二进制,通过乘以2然后与1比较,大于等于1则该位为1,并且该值减去1: 否则该位为0.不断地通过这种操作最终能使该小数部分的值变为0的,即可精确表示. 否则将无法用有限的位数来

&lt;!-- str.startsWith(&#39;胡&#39;) 检查一个 字符串中是否有某字符 返回true false --&gt;

1.<!-- str.startsWith('胡')  检查一个 字符串中是否有某字符 返回true false --> 2. vh 分享到选择其它项 复制本页链接 版本:CSS3 补充完善,提交问题欢迎微博上 @愚人码头 说明: 相对于视口的高度.视口被均分为100单位的vh 示例代码: h1 { font-size: 8vh; } 如果视口的高度是200mm,那么上述代码中h1元素的字号将为16mm,即(8x200)/100 兼容性: 浅绿 = 支持 红色 = 不支持 粉色 = 部分支持

判断一个字符串中是否含有中文字符:

python中的encode和decode: 首先,在Python中字符串的表示是 用unicode编码.所以在做编码转换时,通常要以unicode作为中间编码. decode的作用是将其他编码的字符串转换成unicode编码,比如 a.decode('utf-8'),表示将utf-8编码的字符串转换成unicode编码 encode的作用是将unicode编码的字符串转换成其他编码格式的字符串,比如b.encode('utf-8'),表示将unicode编码格式转换成utf-8编码格式的字符串

java算法面试题:有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数 按值的降序排序,如果值相同则按键值的字母顺序

package com.swift; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; public class Zhongwen_Shuzi_Times { public static void main(String[] args) { /* * 有一个字符串,其中包含中文字符.英文字符和数字字符,请统计和打印出各个字符的个数 */ String str="琅琊榜fengqichanglin