编写一个应用程序,利用数组或集合,求出四个字符串的平均长度以及字符出现重复次数最多的字符串
程序员文章站
2024-01-07 22:46:16
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