面试|有关字符串中字符出现重复字符的面试问题,这里都有了

   日期:2020-06-05     浏览:350    评论:0    
核心提示:下面是总结的一些常见问题,以供大家参考第一次出现重复字符出现的重复字符出现字符串、字符还有次数出现次数最多的字符的次数classEclass{publicstaticvoidmain(String[]args){Stringstr=eeeejwurihewweafa;Eclasse=newEclass();//问题一intindex=e.Method(str);

下面是总结的一些常见问题,以供大家参考

  1. 第一次出现重复字符
  2. 出现的重复字符
  3. 出现字符串、字符还有次数
  4. 出现次数最多的字符及次数
class Eclass{
    public static void main(String[] args) {
        String str = "eeeejwurihewweafa";
        Eclass e = new Eclass();
        //问题一
        int index = e.Method(str);
        String result = str.charAt(index)+"";
        System.out.println(result);
        //问题二
        List<Character> list = e.douMethod(str);
        for (Character c :list
             ) {
            System.out.println(c+"\t");
        }
        //问题三
        e.stringCount(str);

        //问题四
        e.maxString(str);

    }
    //第一次出现重复字符
    public int Method(String str){
        int index=-1;
        int length=str.length();
        for (int i=0;i<length;i++){
            char c = str.charAt(i);
            //在str中从i+1开始检索,如果c存在,返回第一个c的下标,如果不存在返回-1
            if ((str.indexOf(c,i+1))!=-1){
                index=i;
                break;
            }
        }
        return index;
    }
    //出现的重复字符
    public List<Character>  douMethod(String str){
        int index=-1;
        int length=str.length();
        List list = new ArrayList();
        for (int i=0;i<length;i++){
            char c = str.charAt(i);
            //在str中从i+1开始检索,如果c存在,返回第一个c的下标,如果不存在返回-1
            if ((str.indexOf(c,i+1))!=-1){
                index=i;
                //判断集合中是否存在
                if (!list.contains(c))
                list.add(c);
            }
        }
        return list;
    }
    //出现字符串、字符还有次数
    public void stringCount(String str){
        Map<Character,Integer> map = new HashMap<>();
        for (int i= 0; i<str.length();i++){
            if (map.get(str.charAt(i))!=null){
                map.put(str.charAt(i),map.get(str.charAt(i))+1);
            }else {
                map.put(str.charAt(i),1);
            }
        }
        System.out.println(map);
    }
    //出现次数最多的字符的次数
    public void maxString(String str) {
        Map<Character, Integer> map = new HashMap<>();
        int max = 0;		//出现最多的次数
        String maxCha="";  //次数最多的字符
        for (int i = 0; i < str.length(); i++) {
            if (map.get(str.charAt(i)) != null) {
                map.put(str.charAt(i), map.get(str.charAt(i)) + 1);
            } else {
                map.put(str.charAt(i), 1);
            }
        }
        for (Character c: map.keySet()
        ){
            if (map.get(c)>max){
                max=map.get(c);
                maxCha=c+"";
            }else {
                max=max;
            }
        }
        System.out.println("出现最多的字符:"+maxCha+",出现了"+max+"次");
    }
  }
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服