有如下的一个字符串 String str = “AAAABBBBCCCDDDEFF”; ① 请统计出其中每一个字母出现的次数,在控制台打印如下的格式: A----3 B----4 C----1 D----2
时间: 2023-10-20 17:09:07 浏览: 117
您好!根据您提供的字符串,我可以帮助您统计每个字母出现的次数。下面是代码示例:
```java
String str = "AAAABBBBCCCDDDEFF";
// 创建一个HashMap用于存储字母和出现次数
Map<Character, Integer> countMap = new HashMap<>();
// 遍历字符串,统计每个字母出现的次数
for (char c : str.toCharArray()) {
if (countMap.containsKey(c)) {
countMap.put(c, countMap.get(c) + 1);
} else {
countMap.put(c, 1);
}
}
// 打印结果
for (Map.Entry<Character, Integer> entry : countMap.entrySet()) {
System.out.println(entry.getKey() + "----" + entry.getValue());
}
```
输出结果:
```
A----4
B----4
C----3
D----3
E----1
F----2
```
相关问题
1、有如下的一个字符串 String str = “QWERTYUIQQQWJHDAADADBBBBCAD”; ① 请统计出其中每一个字母出现的次数,在控制台打印如下的格式:② 请打印出字母次数最多的那一对
好的,针对您的问题,我来给您详细解答:
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
```
这就是字母次数最多的那一对。
3、有如下的一个字符串 String str = “QWERTYUIQQQWJHDAADADBBBBCAD”; ① 请统计出其中每一个字母出现的次数,在控制台打印如下的格式: A----3 B----4 C----1 D----2 ② 请打印出字母次数最多的那一对 请使用Map实现 entrySet() values() Collections工具类中max() containsKey();
① 统计每个字母出现次数的代码如下:
```
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
```
阅读全文