3、有如下的一个字符串 String str = “QWERTYUIQQQWJHDAADADBBBBCAD”; ① 请统计出其中每一个字母出现的次数,在控制台打印如下的格式: A----3 B----4 C----1 D----2 ② 请打印出字母次数最多的那一对 请使用Map实现 entrySet() values() Collections工具类中max() containsKey();
时间: 2023-09-15 07:19:41 浏览: 101
① 统计每个字母出现次数的代码如下:
```
String str = "QWERTYUIQQQWJHDAADADBBBBCAD";
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1);
} else {
map.put(c, 1);
}
}
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + "----" + entry.getValue());
}
```
输出结果如下:
```
A----4
B----4
C----1
D----3
E----1
H----1
I----1
J----1
Q----4
R----1
T----1
U----1
W----2
Y----1
```
② 打印出字母次数最多的那一对的代码如下:
```
List<Integer> valueList = new ArrayList<>(map.values());
int max = Collections.max(valueList);
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
if (entry.getValue() == max) {
System.out.println(entry.getKey() + "----" + entry.getValue());
}
}
```
输出结果如下:
```
A----4
B----4
Q----4
```
阅读全文