public static void main(String[] args) throws IOException { //使用缓冲流:使用缓冲流特有的功能:一次可以读一行的特有功能 BufferedReader bf = new BufferedReader(new FileReader("D:/dpcq.txt")); //创建一个map集合, Map<Character,Integer> map = new TreeMap<>(); //创建一个集合, ArrayList<String> list = new ArrayList<>(); String line; //读取的每一行不为空,然后添加到集合当中 while ((line =bf.readLine())!=null){ list.add(line); } for (String s : list) { //把字符串变成字符数组 char[] chars = s.toCharArray(); for (char c : chars) { //判断集合中是否存在字符c if (map.containsKey(c)){ //如果存在,根据map的get方法获取键值 Integer integer = map.get(c); //键值+1 map.put(c,integer+1); }else{ //不存在.将键值存入1 map.put(c,1); } } } //创建两个集合,一个键的集合和另外一个键值的集合 ArrayList<Integer> list1 = new ArrayList<>(); ArrayList<Character> list2 = new ArrayList<>(); //遍历map集合,得到所有的键和相对应的键值 Set<Map.Entry<Character, Integer>> entries = map.entrySet(); for (Map.Entry<Character, Integer> entry : map.entrySet()) { //得到所有的jian Character key = entry.getKey(); //得到所有的键值 Integer value = entry.getValue(); //把所有的键值存入到集合当中 list1.add(value); //把所有的键存入到集合当中 list2.add(key); } int max = list1.get(0); int index = 0; //遍历键值集合,键值里面的最大值,并打印出来键值最大值所对应的索引值; for (int i = 1; i < list1.size(); i++) { if(list1.get(i)>max){ max=list1.get(i); index =i; } } //打印键值里面的最大值和对应的索引值 System.out.println("键值里面的最大值对应的索引是 :"+index); System.out.println("键值里面的最大值是:"+max); //根据键值的索引值去键的集合里面找键 Character character = list2.get(4016); System.out.println("出现最多的字符是:"+character); }
使用io流,读出一本小说里面的所有字符,并记录出每一个字符出现的次数,并打印出字符最多的字符.
最新推荐文章于 2022-05-31 01:43:53 发布