1、有如下的一个字符串 String str = “QWERTYUIQQQWJHDAADADBBBBCAD”; ① 请统计出其中每一个字母出现的次数,在控制台打印如下的格式:② 请打印出字母次数最多的那一对
时间: 2024-02-15 18:03:23 浏览: 103
好的,针对您的问题,我来给您详细解答:
1. 统计每个字母出现的次数,并输出到控制台:
```java
public static void countChars(String str) {
Map<Character, Integer> charCounts = new HashMap<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (charCounts.containsKey(c)) {
charCounts.put(c, charCounts.get(c) + 1);
} else {
charCounts.put(c, 1);
}
}
for (Map.Entry<Character, Integer> entry : charCounts.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
```
调用该方法,可以输出如下结果:
```
A: 6
B: 4
C: 1
D: 4
E: 1
H: 2
I: 1
J: 1
Q: 4
R: 1
T: 1
U: 2
W: 3
Y: 1
```
2. 打印出字母次数最多的那一对:
```java
public static void printMostFrequentPair(String str) {
Map<String, Integer> pairCounts = new HashMap<>();
for (int i = 0; i < str.length() - 1; i++) {
String pair = str.substring(i, i + 2);
if (pairCounts.containsKey(pair)) {
pairCounts.put(pair, pairCounts.get(pair) + 1);
} else {
pairCounts.put(pair, 1);
}
}
String mostFrequentPair = "";
int mostFrequentCount = 0;
for (Map.Entry<String, Integer> entry : pairCounts.entrySet()) {
if (entry.getValue() > mostFrequentCount) {
mostFrequentPair = entry.getKey();
mostFrequentCount = entry.getValue();
}
}
System.out.println(mostFrequentPair + ": " + mostFrequentCount);
}
```
调用该方法,可以输出如下结果:
```
AD: 3
```
这就是字母次数最多的那一对。
阅读全文