机考刷题(SearchChar)

机考刷题(SearchChar)

在一个字符串中找到第二个只出现4次的字符,如果不存在返回nul.

机考刷题(SearchChar)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * @Author hwj
 * @Date 2020/8/18 19:49
 * @Desc:
 **/
public class SearchChar {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str=br.readLine();
        System.out.println(getSecondChar(str));
    }
    public static Character getSecondChar(String param){
        char[] params=param.toCharArray();
        LinkedHashMap<Character,Integer> map=new LinkedHashMap<>();
        for(int i=0;i<params.length;i++){
            if(map.containsKey(params[i])){
                map.put(params[i],map.get(params[i])+1);
            }else{
                map.put(params[i],1);
            }
        }

        Iterator iterator = map.entrySet().iterator();
        LinkedHashMap<Character,Integer> map2=new LinkedHashMap<>();
        while (iterator.hasNext()) {
            Map.Entry<Character, Integer> en = (Map.Entry<Character, Integer>) iterator.next();
            Integer value = en.getValue();
            if(value==4){
                map2.put(en.getKey(),en.getValue());
            }
        }
        Iterator iterator2 = map2.entrySet().iterator();
        if (map2.size()<2){
            return null;
        }else{
            for(int i=0;i<map2.size();i++){
                Map.Entry<Character, Integer> en2 = (Map.Entry<Character, Integer>) iterator2.next();
                Character key = en2.getKey();
                if(i==1){
                   return key;
                }
            }

        }
        return null;
    }
}