機考刷題(SearchChar)
阿新 • • 發佈:2020-08-18
在一個字串中找到第二個只出現4次的字元,如果不存在返回nul.
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; } }