欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

编写一个应用程序,利用数组或集合,求出四个字符串的平均长度以及字符出现重复次数最多的字符串

程序员文章站 2022-03-19 16:17:21
import java.util.*;/*编写一个应用程序,利用数组或集合,求出四个字符串的平均长度以及字符出现重复次数最多的字符串 */public class Todo1 { public static void main(String[] args) { show01(); show02(); } public static void show01() { // 创建一个集合存储4个字符串 Linked...
import java.util.*;

/*
编写一个应用程序,利用数组或集合,求出四个字符串的平均长度以及字符出现重复次数最多的字符串
 */
public class Todo1 {
    public static void main(String[] args) {
        show01();
        show02();
    }

    public static void show01() {
        // 创建一个集合存储4个字符串
        LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
        linkedHashMap.put(1, "HELLO");
        linkedHashMap.put(2, "JAVA");
        linkedHashMap.put(3, "PROGRAM");
        linkedHashMap.put(4, "EXCEPTION");

        float averageLength;
        int totalStringNum = linkedHashMap.size();
        float totalLength = 0;
        for (int i = 1; i <= linkedHashMap.size(); i++) {
            totalLength += linkedHashMap.get(i).length();
        }
        System.out.println(totalLength);
        System.out.println(totalStringNum);
        averageLength = totalLength / totalStringNum;
        System.out.println("字符串的平均长度是: " + averageLength);
    }

    public static void show02() {
        // 创建一个集合存储4个字符串
        LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
        linkedHashMap.put(1, "HELLO");
        linkedHashMap.put(2, "JAVA");
        linkedHashMap.put(3, "PROGRAM");
        linkedHashMap.put(4, "EXCEPTION");


/*        System.out.println("输入一个字符串");
        // 使用 scanner 获取输入的 字符串
        String next = new Scanner(System.in).next();*/

        LinkedHashMap<Integer, HashMap<Character, Integer>> linkedHashMap2 = new LinkedHashMap<>();

        for (int i = 1; i <= linkedHashMap.size(); i++) {
            String next = linkedHashMap.get(i);

            HashMap<Character, Integer> hashMap = new HashMap<>();
            //
            for (char c : next.toCharArray()) {
                // c 代表的是获取到的每一个字符
                if (hashMap.containsKey(c)) {
                    // key 存在
                    hashMap.put(c, hashMap.get(c) + 1);
                } else {
                    hashMap.put(c, 1);
                }
            }
            System.out.println(hashMap);
            linkedHashMap2.put(i, hashMap);
        }

        System.out.println(linkedHashMap2);
        // 找出在 HashMap 中次数最大的值
        int m = 0;
        // 遍历 HashMap,找到出现次数最多的值
        for (int i = 1; i <= linkedHashMap2.size(); i++) {
            // 找到之中存储的 容器
            // 容器<K,V><字母,次数>
            HashMap<Character, Integer> innerHashMap = linkedHashMap2.get(i);
            // 当 i = 1 时取出,如下集合
            // {1={E=1, H=1, L=2, O=1}
            /*for (int j = 1; j <= innerHashMap.size(); j++) {
                int value = innerHashMap.get(j);
                if (value > m) {
                    m = value;
                }
            }*/
            Set<Map.Entry<Character, Integer>> entrySet = innerHashMap.entrySet();

            // 增强 for 循环
            for (Map.Entry<Character, Integer> entry : entrySet) {

                Character key = entry.getKey();
                Integer value = entry.getValue();
                if (m < value){
                    m = value;
                }
                // System.out.println(key + "-->" + value);
            }
        }
        System.out.println("出现次数最多时,次数是" + m);

        // 找出包含最大值的 value 然后输出
        for (int i = 1; i <= linkedHashMap2.size(); i++) {
            // 找到小集合
            HashMap<Character, Integer> innerHashMap = linkedHashMap2.get(i);
            //
            if (innerHashMap.containsValue(m)){
                // System.out.println(innerHashMap);
                System.out.println(linkedHashMap2.get(i));
            }
        }
    }
}

本文地址:https://blog.csdn.net/HarrisJayce/article/details/110834274

相关标签: java